csdn每日一练:非降序数组(java版本)

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:后言:

一起学习一起进步,如果帮到你的话,希望点个赞哒!


版权声明:本文为faker1234546原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。