ZZULIOJ 1124: 两个有序数组合并

题目描述

已知数组a中有m个按升序序排列的元素,数组b中有n个降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。

 

输入

输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。

 

输出

输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。

 

样例输入

<span style="color:#333333">4 1 2 5 7
3 6 4 2
</span>

 

样例输出

<span style="color:#333333">7 6 5 4 2 2 1
</span>

 

提示

试图排序的孩子们要小心了~~~~~~

import java.util.Arrays;
import java.util.Scanner;

public class Main {

        public static  int[] merge (int[] a, int[] b) {
                int pa =0;
                int pb = 0;
                int pc = 0;
                int m = a.length;
                int n = b.length;
                int[] c = new int[m+n];
                while (pa<m && pb<n) {
                        if (a[pa]<b[pb]) {
                                c[pc++] = a[pa++];
                        }else {
                                c[pc++] =b[pb++];
                        }
                }
                if (pa<m)
                        while (pa<m) c[pc++] = a[pa++];
                else
                        while (pb<n) c[pc++] = b[pb++];
                return c;
        }


        public static void main(String[] args) {

                Scanner input=new Scanner(System.in);
                int n=input.nextInt();
                int[] arr=new int[n];
                for (int i=0;i<n;i++){
                        int num=input.nextInt();
                        arr[i]=num;
                }

                int m=input.nextInt();
                int[] brr=new int[m];

                for (int i=0;i<m;i++){
                        int num=input.nextInt();
                        brr[i]=num;
                }

               int[] crr=Main.merge(arr,brr);

                //对数组升序
                Arrays.sort(crr);


                //倒序打印数组元素
                for (int i=crr.length-1;i>=0;i--){
                        System.out.print(crr[i]+" ");
                }


        }
}

 

全部评论

相关推荐

有气魄的马来熊在摸鱼:我爱vivo 马上换手机 vivo我爱你!!!
点赞 评论 收藏
分享
10-29 16:42
门头沟学院 Java
1.今天什么国标的公司打电话约面试,还得准备ppt,好麻烦,网上查薪资一般,打算拒了,不面了2.字节又复活了,什么安全开发,也不知道怎么样,面一面试试吧,还是挺想去字节的,但好难,随缘吧所以今天没面试
嵌入式的小白:面试前可以好好准备下 1.看看你投递的岗位的岗位描述,分析下是哪个业务线,同使要罗列他们描述中提到的技术点 2.根据1中的两点准备 3.岗位描述中应该还有语言要求,这个刷刷八股,要是对自己语言能力很有把握,那就不用看这点了 4.找下你简历中项目部分,看有没有和岗位描述中技术点重合的,这种在面试提到项目时,是高概率问题 好好准备,祝你面试顺利
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务