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

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只会写bug的靓仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值