原题地址: https://leetcode.com/problems/relative-sort-array/
给定两个数组arr1和arr2,其中arr2的元素是没有重复的,而且在arr2的元素也都存在于arr1里。
排序arr1,使那些跟arr2一样的元素的排序方式于arr2统一,那些仅出现在arr1的元素,则以升序排列在arr1尾部。
例一
<strong>输入:</strong> arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6] <strong>输出:</strong> [2,2,2,1,4,3,3,9,6,7,19]
有点繁琐,但是不难。首先我们把arr2全部元素放进hashmap。然后,循环arr1,统计所有在arr2的元素在arr1里面出现的次数。不在arr2的元素扔到others里。然后分别输出hashmap和others里面的元素即可。
耗时 2 ms ,比 73.13% 的Java代码快,我想应该没啥太大的复杂度问题了。
代码地址:https://github.com/tinyfool/leetcode/tree/master/src/p1122
其他排序相关题目,参照排序主题。