题目
就是重新定义一下排序的规则就可以
class Solution {
public int[] relativeSortArray(int[] arr1, int[] arr2) {
HashMap<Integer,Integer> map = new HashMap<>();
for(int i=0;i<arr2.length;i++){
map.put(arr2[i],i);
}
Integer[] res = new Integer[arr1.length];
for(int i=0;i<res.length;i++){
res[i] = arr1[i];
}
Comparator<Integer> cmp = new Comparator<Integer>(){
public int compare(Integer a,Integer b){
if(!map.containsKey(a) && !map.containsKey(b)){
return a-b;
}
return map.getOrDefault(a,arr1.length)-map.getOrDefault(b,arr1.length);
}
};
Arrays.sort(res,cmp);
for(int i=0;i<res.length;i++){
arr1[i] = res[i];
}
return arr1;
}
}
这个int数组得提前转成integer数组。