华为OD机试 - 整型数组合并(Java 牛客练习题)

该博客主要介绍了如何使用Java解决华为在线测试中的一道算法题,即合并两个升序整型数组并去除重复元素。博主详细讲解了题目的要求,输入输出描述,并提供了完整的Java算法源码,最后展示了运行效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目描述

将两个整型数组按照升序合并,并且过滤掉重复数组元素。

输出时相邻两数之间没有空格。

二、输入描述

输入说明,按下列顺序输入:

  1. 输入第一个数组的个数
  2. 输入第一个数组的数值
  3. 输入第二个数组的个数
  4. 输入第二个数组的数值

三、输出描述

输出合并之后的数组。

四、测试用例

测试用例1

1、输入

0
3
5 2 5

2、输出

25

3、说明

第一个数组为空,第二个数组为 [5, 2, 5](去重后为 [2, 5]),排序后输出 “25”。

测试用例2

1、输入

3
3 2 1
3
3 2 1

2、输出

123

3、说明

两个数组均为 [3,2,1],

### 华为OD真实题目与编程练习资料 华为OD的题目通常分为多个版本,例如A卷、B卷、C卷等[^2]。这些卷可能包含一些历史题目的重复以及新增加的内容。对于准备此类考的人来说,了解历年真题及其解法是非常重要的。 #### 历年真题分析 在2023年的华为OD中,有一道关于Java实现分糖果的经典算法问题被广泛讨论,并提供了详细的解题思路和代码示例[^1]。这表明该类题不仅考察基本语法掌握情况,还注重逻辑思维能力的应用。 以下是基于上述提到的一道典型例题——“分糖果”的解决方案: ```java import java.util.*; public class CandyDistribution { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); // 孩子数量 int m = scanner.nextInt(); // 糖果总数 List<Integer> distributionList = distributeCandies(n, m); System.out.println(distributionList.toString()); } private static List<Integer> distributeCandies(int childrenCount, int candyTotal){ List<Integer> result = new ArrayList<>(childrenCount); for (int i=0;i<childrenCount;i++) { result.add(0); } while(candyTotal > 0){ for(int j=0; j<result.size() && candyTotal >0 ;j++){ result.set(j,result.get(j)+1); candyTotal--; } } return result; } } ``` 此程序实现了公平分配一定量的糖果给若干名儿童的过程。通过循环遍历列表来逐一增加每位孩子的糖果数直到没有剩余为止。 #### 获取更多资源的方法 为了更好地备战华为OD,可以参考网上的专项训练模块以及其他公开渠道分享的相关经验贴。特别是针对不同类型的算法设计模式进行深入学习,比如动态规划、贪心策略等高级技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哪 吒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值