两个数组求交集怎么实现
时间: 2023-09-04 15:15:29 浏览: 86
php-leetcode题解之两个数组的交集.zip
可以使用哈希表(HashMap)来实现两个数组的交集。
具体实现步骤如下:
1. 遍历第一个数组,使用HashMap记录每个元素出现的次数。
2. 遍历第二个数组,如果当前元素在HashMap中存在并且出现次数大于0,则将该元素加入结果集合,并将HashMap中该元素出现次数减1。
时间复杂度为O(m+n),其中m和n分别为两个数组的长度。
Java代码实现如下:
```
public int[] intersection(int[] nums1, int[] nums2) {
Map<Integer, Integer> map = new HashMap<>();
List<Integer> list = new ArrayList<>();
// 将nums1中的元素加入map中
for (int num : nums1) {
map.put(num, map.getOrDefault(num, 0) + 1);
}
// 遍历nums2,将交集元素加入list中
for (int num : nums2) {
if (map.containsKey(num) && map.get(num) > 0) {
list.add(num);
map.put(num, map.get(num) - 1);
}
}
// 将list转换为数组返回
int[] res = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
res[i] = list.get(i);
}
return res;
}
```
阅读全文