华为OJ平台——整形数组合并
题目描述:
将两个整型数组按照升序合并,并且过滤掉重复数组元素
输入:
输入说明,按下列顺序输入:
1 输入第一个数组的个数
2 输入第一个数组的数值
3 输入第二个数组的个数
4 输入第二个数组的数值
输出:
输出合并之后的数组
输入样例:
3 1 2 5 4 -1 0 3 2
输出样例:
-101235
思路:
先将两个数组合并到一个中,然后对这个完整的数组进行排序,最后剔除重复的数据并输出
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[i] = 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[i] = 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[i] = arr1[i] ; 40 } 41 for(int i = 0 ; i < arr2.length ; i++){ 42 total[i+arr1.length] = arr2[i] ; 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[i] != last){ 52 last = total[i] ; 53 res += total[i] + "" ; 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[i] ; 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[i] ; 79 arr[i] = min ; 80 } 81 } 82 } 83 84 }
Code
转载于:https://www.cnblogs.com/mukekeheart/p/5628004.html
华为OJ平台——整形数组合并相关推荐
- 华为面试题目整形数组合并排序
输入描述: 输入说明,按下列顺序输入: 1 输入第一个数组的个数 2 输入第一个数组的数值 3 输入第二个数组的个数 4 输入第二个数组的数值 输出描述: 输出合并之后的数组 示例1 输入: 3 1 ...
- 华为OJ平台题目-砝码重量
本人邮箱-> kco1989@qq.com 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco github: https://github.com/kc ...
- 2023新华为OD机试题 - 数组合并(JavaScript) | 刷完过
华为Od必看博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 华为OD机试 全流程解析+经验分享,题型分 ...
- 整形数组合并【JS】
问题描述 题目链接-牛客 将两个整型数组按照升序合并,并且过滤掉重复数组元素. 输出时相邻两数之间没有空格. 输入描述: 输入说明,按下列顺序输入: 输入第一个数组的个数 输入第一个数组的数值 输入第 ...
- 华为oj平台的新网址
http://117.78.7.99/exam/camLogin.jsp 转载于:https://www.cnblogs.com/hewenwu/p/3981391.html
- 华为OJ平台——放苹果(典型整数划分问题)
题目描述: 输入m,n,分别表示苹果数与盘子的总数,要求输出苹果放在n个盘子的方法总数(注意511和151是一种情况),例如输入 7 3 输出8((7),(6,1),(5,2),(4,3),(5,1, ...
- 华为OJ平台题目:(练习用)挑7
描述 输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数 知识点 循环 运行时间限制 0M 内存限制 0 输入 一个正整数N.(N不大于 ...
- 华为OJ平台——将真分数分解为埃及分数
题目描述: 分子为1的分数称为埃及分数.现输入一个真分数(分子比分母小的分数,叫做真分数),请将该分数分解为埃及分数.如:8/11 = 1/2+1/5+1/55+1/110. 输入: 输入一个真分数, ...
- c语言oj平台ratio,【华为OJ平台练习题】求最大公共子串的个数和元素
#include #include using namespace std; vector prcs_2Strs(const char* s1,const char* s2) { vector pos ...
最新文章
- Linux虚拟机连不上网
- Python核心模块——urllib模块
- MPB:华中师大谢波组-​​​微生物非标记定量蛋白质组学样品制备方法
- 微服务架构:动态配置中心搭建
- HDU 1573: X问题
- podcast播客资源_为什么播客是我的新维基百科-完美的非正式学习资源
- JavaWEB/JSP 中简单的验证码 springMVC
- python abc
- Android 插件化和热修复知识梳理
- Code blocks调试教程
- 计算机系统字体安装程序,电脑安装字体的三种方式
- 核心银行系统 之一 历史与发展
- 宝马推出电动自行车,最大续航300公里
- 使用QT5+Opencv完成简单的图像处理及视频处理软件
- 《你见,或者不见我》
- 国际日期书写标准格式
- DynaBeanHolder动态bean构造器实现
- 关于《那些年啊,那些事——一个程序员的奋斗史》——24提到的鼻炎治疗方法
- 百草霜fbinst启动盘fba包汇总
- 概率论中的联合概率理解