思路:利用哈希表保存每个元素的位置,然后按照给定的顺序遍历原数组,将元素放到新数组对应的位置上即可。
示例代码:
def reorder(arr, order):
hash_map = {}
for i, elem in enumerate(arr):
hash_map[elem] = i
for i, elem in enumerate(order):
arr[i] = arr[hash_map[elem]]
return arr
使用方法:
arr = [3, 1, 2, 4, 5]
order = [2, 5, 1, 4, 3]
print(reorder(arr, order)) # [2, 5, 1, 4, 3]
时间复杂度:$O(n)$,空间复杂度:$O(n)$。
下一篇:按照给定属性名去重数组对象