LEETCODE | PYTHON | 1122 | 数组的相对排序
1. 题目
给你两个数组,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每个元素都出现在 arr1 中。
对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/relative-sort-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 代码
class Solution:
def relativeSortArray(self, arr1: List[int], arr2: List[int]) -> List[int]:
#计算两数组长度
len1 = len(arr1)
len2 = len(arr2)
#结果初始化
res = []
#删除arr1中重复数字
ArrSet = list(set(arr1))
#遍历arr2
for i in range(len2):
#确定字母
Chr = arr2[i]
#在arr1中删除对应字母
ArrSet.remove(Chr)
#统计arr1中字母个数
count = arr1.count(Chr)
#更新res
for j in range(count):
res.append(Chr)
#ArrSet升序排列
ArrSet.sort()
#遍历ArrSt
for i in ArrSet:
#统计arr1中字母个数
count = arr1.count(i)
#更新res
for j in range(count):
res.append(i)
return res