1:题目
题目描述: 写一个函数,传入两个非降序的整数数组(A, B),将 A, B 合并成一个非降序数组 C,返回 C(不要使用内置 sort
函数)。(测试用例仅做参考,我们会根据代码质量进行评分)
2:过程:
两个数组混合排序
,看起来很有思路
可惜一遍历就gg,哈哈。
我们可以换个角度想,直接吧数字拿出来,然后,直接重新排序。
public static ArrayList<Integer> solution(ArrayList<Integer> arr0, ArrayList<Integer> arr1, ArrayList<Integer> arr2){
ArrayList<Integer> result = new ArrayList<>();
// TODO: 请在此编写代码
int []reArr = new int[100000];
for(int i = 0; i < arr1.size(); i++){
int indexOf = arr1.get(i);
reArr[indexOf]++;
}
//遍历第一个数组提取数字
for(int i = 0; i < arr2.size(); i++){
int indexOf = arr2.get(i);
reArr[indexOf]++;
}
//遍历第二个数组提取数字
for(int i = 0; i < 100000; i++){
int temp = reArr[i];
if(temp<=0){
continue;
}
else{
for(int j = 0; j < temp; j++){
result.add(i);
}
}
}
//遍历提取完的数组重新排序重新排序
return result;
}
3:后言:
一起学习一起进步,如果帮到你的话,希望点个赞哒!