华为od机试题 找出两个整数数组中同时出现的整数
时间: 2023-09-28 18:02:28 浏览: 82
要找出两个整数数组中同时出现的整数,可以使用集合的思想来解决。
首先,创建一个空集合用于存储同时出现的整数。
然后,遍历第一个整数数组,将每个整数添加到集合中。
接着,遍历第二个整数数组,对于每个整数,判断是否在集合中存在。如果存在,则说明该整数同时出现在两个数组中,将其添加到结果集合中。
最后,将结果集合转换为数组返回即可。
下面是具体的代码实现:
```python
def find_common_integer(nums1, nums2):
common_set = set()
result_set = set()
for num in nums1:
common_set.add(num)
for num in nums2:
if num in common_set:
result_set.add(num)
return list(result_set)
```
以上就是使用集合来找出两个整数数组中同时出现的整数的方法。将整数数组转化为集合可以提高查找的效率,因为集合的查询时间复杂度是O(1)。最终返回的结果为一个整数数组。
相关问题
华为od找出两个整数数组中同时出现的整数
华为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
```
通过以上步骤和代码,我们可以找出两个整数数组中同时出现的整数。
华为od机试题【ipv4 地址转换成整数】用 java 解
题目要求将一个IPv4地址转换成整数。IPv4地址由4个8位的字段组成,每个字段的取值范围是0-255。转换方法如下:
首先,将IPv4地址分成4个字段,例如:192.168.0.1。
然后,将每个字段的值转换成二进制数,并将这四个二进制数拼接在一起。
最后,将这个二进制数转换成十进制的整数。
用Java代码实现如下:
public class IPv4ToInteger {
public static void main(String[] args) {
String ipAddress = "192.168.0.1";
long result = convertIPv4ToInteger(ipAddress);
System.out.println(result);
}
public static long convertIPv4ToInteger(String ipAddress) {
String[] fields = ipAddress.split("\\.");
long result = 0;
for (int i = 0; i < fields.length; i++) {
long fieldValue = Long.parseLong(fields[i]);
result = (result << 8) + fieldValue;
}
return result;
}
}
以上代码将IPv4地址分割成4个字段,并使用Long.parseLong()方法将每个字段的字符串转换成长整型。然后,通过位移运算将四个字段的值拼接在一起,最后得到十进制的整数结果。运行该代码可以输入一个IPv4地址,得到对应的整数输出。