力扣刷题记录#数组#简单#1122数组的相对排序 题目描述给出两个数组arr1 和 arr2arr2 中的元素各不相同arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。注意arr1.length, arr2.length 10000 arr1[i], arr2[i] 1000arr2 中的元素 arr2[i] 各不相同arr2 中的每个元素 arr2[i] 都出现在 arr1 中示例输入arr1 [2,3,1,3,2,4,6,7,9,2,19], arr2 [2,1,4,3,9,6]输出[2,2,2,1,4,3,3,9,6,7,19]解答classSolution(object):defrelativeSortArray(self,arr1,arr2)::type arr1:List[int]:type arr2:List[int]:rtype:List[int] len1len(arr1)len2len(arr2)iflen1len2:returnarr2 # 统计arr1中各个数出现的次数 counts1dict()fornum in arr1:ifnum not in counts1.keys():counts1[num]0counts1[num]1# 统计arr2中各个数出现的次数 counts2dict()fornum in arr2:ifnum not in counts2.keys():counts2[num]0counts2[num]1# 没在arr2中出现的数无重复 restlist(set(arr1)-set(arr2))# 将arr1中包含arr2的数排序按arr2的顺序 anslist()fornum in arr2:countcounts1[num]ansans[num]*count # 将没在arr2中出现的数排序 rest_alllist()fornum in rest:countcounts1[num]rest_allrest_all[num]*count rest_all.sort()returnansrest_all