public int[] relativeSortArray(int[] arr1, int[] arr2) {
int[] bucket=new int[1001];//创建一个桶,足以容纳arr1中的最大的数
for (int i=0;i<arr1.length;i++){//记录arr1中的每个数的个数,并排序
bucket[arr1[i]]++;
}
int[] res = new int[arr1.length];//创建一个返回的数组
int index = 0;
for (int item:arr2){
while (bucket[item]-- >0){//遍历arr2中的每个数,根据在arr2中的顺序进行排序
res[index++] = item;
}
}
for (int i=0;i<1001;i++){
while (bucket[i]-->0){//将未剩余的数进行从小到大进入res
res[index++] = i;
}
}
return res;
}
1122. 数组的相对排序
最新推荐文章于 2022-03-18 19:53:50 发布