华为oj--整型数组合并
来源:互联网 发布:如何更换淘宝会员名 编辑:程序博客网 时间:2024/05/20 20:43
将两个数组合并按照升序排列,并去掉重复的元素。
思路:首先将两个无序的数组排列有序,然后将其合并到另一个数组中,合并过程中遇到重复元素则不放入数组,有点类似归并排序的合并操作。华为oj上面错了一个用例,也不知道为什么。
/** * 输入说明,按下列顺序输入: *1 输入第一个数组的个数 *2 输入第一个数组的数值 *3 输入第二个数组的个数 *4 输入第二个数组的数值输出 *输出合并之后的数组 *样例输入 3 1 2 5 4 -1 0 3 2 *样例输出 -101235 */import java.util.Arrays;import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int m=scanner.nextInt();int[] a=new int[m];for(int i=0;i<m;i++){a[i]=scanner.nextInt();}int n=scanner.nextInt();int[] b=new int[n];int[] result=new int[m+n];for(int i=0;i<n;i++){b[i]=scanner.nextInt();}Arrays.sort(a);Arrays.sort(b);int i=0;int j=0;int count=0;while(i<m&&j<n){if(a[i]<b[j]){if(count==0||result[count-1]!=a[i]){result[count]=a[i];count++;}i++;}else{if(count==0||result[count-1]!=b[j]){result[count]=b[j];count++;}j++;}}while(i<m){if(count==0||result[count-1]!=a[i]){result[count]=a[i];count++;}i++;}while(j<n){if(count==0||result[count]!=b[j]){result[count]=b[j];count++;}j++;}for(int k=0;k<count;k++){System.out.print(result[k]);}System.out.println();}}
0 0
- 【华为oj】整型数组合并
- 【华为 OJ】 整型数组合并
- 华为oj--整型数组合并
- 华为OJ测试--整型数组合并
- 华为OJ测试--整型数组合并
- 【华为oj】整形数组合并
- 华为oj 整形数组合并
- 华为oj 整形数组合并
- 【华为OJ】整形数组合并
- 华为OJ-整形数组合并
- 华为OJ(整形数组合并)
- 华为OJ基础篇-整形数组合并
- 【华为OJ】【050-整形数组合并】
- 华为OJ——整形数组合并
- 华为OJ 初级:整形数组合并
- 华为OJ——整形数组合并
- [华为OJ--C++]050-整形数组合并
- 华为oj初级 整形数组合并
- eclipse调试以及step into step over step return区别
- js实现导航菜单点击切换选中时高亮状态——方法二
- 排序算法
- SVN库迁移
- redis 参数优化
- 华为oj--整型数组合并
- 云时代的分布式数据库:阿里分布式数据库服务DRDS
- Docker学习笔记2: Docker 概述
- WebView 实现 NestedScrollingChild
- Kubernetes用户指南(三)--在生产环境中使用Pod来工作、管理部署
- BigDecimal(一)
- Cats(1)- 从Free开始,Free cats
- Linux32位64位问题
- 项目应用:pojo与map的相互转换