设为首页 收藏本站
查看: 1274|回复: 0

[经验分享] 华为OJ平台——整形数组合并

[复制链接]

尚未签到

发表于 2017-7-10 19:56:49 | 显示全部楼层 |阅读模式
  题目描述:
  将两个整型数组按照升序合并,并且过滤掉重复数组元素
  输入:
  输入说明,按下列顺序输入:
    1 输入第一个数组的个数
    2 输入第一个数组的数值
    3 输入第二个数组的个数
    4 输入第二个数组的数值
  输出:
  输出合并之后的数组
  输入样例:
  3 1 2 5 4 -1 0 3 2
  输出样例:
  -101235
  思路:
  先将两个数组合并到一个中,然后对这个完整的数组进行排序,最后剔除重复的数据并输出


DSC0000.gif DSC0001.gif


1 import java.util.Scanner;
2
3 public class ArrayMerge {
4
5     public static void main(String[] args) {
6         //输入,按输入的标准输入两个数组的数据
7         Scanner cin = new Scanner(System.in) ;   
8         int len1 = cin.nextInt() ;
9         if(len1 < 1){
10             System.exit(-1);
11         }
12         int [] arr1 = new int [len1] ;
13         for(int i = 0 ; i < len1 ; i++){
14             arr1 = cin.nextInt() ;
15         }
16         int len2 = cin.nextInt() ;
17         if(len2 < 1){
18             System.exit(-1);
19         }
20         int [] arr2 = new int [len2] ;
21         for(int i = 0 ; i < len2 ; i++){
22             arr2 = cin.nextInt() ;
23         }        
24         cin.close() ;
25         
26         System.out.print(intArrayMergeASC(arr1,arr2)) ;               
27     }
28
29     /**
30      * 进行合并,然后将输出结果存放到一个字符串中返回
31      * @param arr1
32      * @param arr2
33      * @return
34      */
35     private static String intArrayMergeASC(int[] arr1, int[] arr2) {
36         //将两个数组合并到一个较大的数组中
37         int [] total = new int [arr1.length + arr2.length] ;
38         for(int i = 0 ; i < arr1.length ; i++){
39             total = arr1 ;
40         }
41         for(int i = 0 ; i < arr2.length ; i++){
42             total[i+arr1.length] = arr2 ;
43         }
44         //对合并后的数组排序
45         sort(total) ;
46         //保存在结果在字符串中
47         String res = total[0]+"" ;
48         int last = total[0] ;
49         for(int i = 1 ; i < total.length ; i++){
50             //不相同的则添加到字符串中,相同的则直接下一个
51             if(total != last){
52                 last = total ;
53                 res += total + "" ;
54             }
55         }
56         
57         return res;
58         
59     }
60     
61     /**
62      * 简单选择排序算法对数组进行排序
63      * @param arr
64      */
65     private static void sort(int[] arr) {
66         int min ;
67         int index ;
68         for(int i = 0 ; i < arr.length-1 ; i++){
69             min = arr ;
70             index = i ;
71             for(int j = i+1 ; j < arr.length ; j++){
72                 if(min > arr[j]){
73                     min = arr[j] ;
74                     index = j ;
75                 }
76             }
77             if(index != i){
78                 arr[index] = arr ;
79                 arr = min ;               
80             }
81         }
82     }
83     
84 }
Code

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-392519-1-1.html 上篇帖子: [编程题-华为] 汽水瓶 下篇帖子: 华为机试题-字符串分隔
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表