【华为OD机试】找出两个整数数组中同时出现的整数(C++ Python Java)2023 B卷

时间限制:C/C++ 1秒,其他语言 2秒

空间限制:C/C++262144K,其他语言524288K

64bit IO Format:%lld

题目描述

现有两个整数数组,需要你找出两个数组中同时出现的整数,并按照如下要求输出:

有同时出现的整数时,先按照同时出现次数(整数在两个数组中都出现并目出现次数较少的那个)进行归类,

然后按照出现次数从小到大依次按行输出。

没有同时出现的整数时,输出NULL。

输入描述

第一行为第一个整数数组,第二行为第二个整数数组,每行数中整数与整数之间以英文号分,

整数的取值范用为[-200, 200],数组长度的范用为[1, 10000]之间的整数。

输出描述

按照出现次数从小到大依次按行输出,每行输出的格式为:

出现次数:该出现次数下的整数升序排序的结果

格式中的":"为英文冒号,整数间以英文逗号分隔。

用例1

输入

5,3,6,-8,0,11

2,8,8,8,-1,15

输出

NULL

说明

用例2

输入

5,3,6,4,8,8,0,11

2,3,8,8,4,-1,15

输出

NULL

解题思路

1.用map统计每组数的个数,将同时出现的数的较少次数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
华为OD工作方式如下:给定两个整数数组,想要找出两个数组中同时出现整数。我们可以使用哈希集合来解决此问题。 首先,我们创建一个空的哈希集合。然后,遍历第一个整数数组,将其中的每个整数都添加到哈希集合中。接下来,我们遍历第二个整数数组,对于每个元素,判断它是否在哈希集合中。如果在集合中,说明这个整数是同时出现两个数组中的一个整数。 具体的步骤如下: 1. 创建一个空的哈希集合。 2. 遍历第一个整数数组,将其中的每个整数都添加到哈希集合中。 3. 创建一个空的结果数组,用来存储同时出现整数。 4. 遍历第二个整数数组,对于每个元素,判断它是否在哈希集合中。 - 如果在集合中,将这个整数添加到结果数组中。 5. 返回结果数组。 下面是一个示例代码: ```python def find_common_integers(nums1, nums2): # 创建哈希集合 hash_set = set() # 遍历第一个整数数组,将其中的每个整数添加到哈希集合中 for num in nums1: hash_set.add(num) # 创建结果数组 result = [] # 遍历第二个整数数组,对于每个元素,判断它是否在哈希集合中 for num in nums2: # 如果在集合中,将这个整数添加到结果数组中 if num in hash_set: result.append(num) # 返回结果数组 return result ``` 通过以上步骤和代码,我们可以找出两个整数数组中同时出现整数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dijkstra2023

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

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

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

打赏作者

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

抵扣说明:

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

余额充值