题目描述
![](https://img.haomeiwen.com/i8995644/19516b6d7688c303.png)
思路:
1、首先想到的是python自带的set结构,解决此问题非常简单,有点偷懒了。。
代码如下:
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
set1 = set(nums1)
set2 = set(nums2)
i_set = set1 & set2
return list(i_set)
![](https://img.haomeiwen.com/i8995644/50a5a89126a62317.png)
2、如果编程语言不支持集合操作,使用hash还是比较方便的,至少判断key是否存在的开销只有O(1),以下是java版的实现方法。
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
for(int i = 0; i < nums1.length; i++) {
if (!map.containsKey(nums1[i])) {
map.put(nums1[i], 1);
}
}
HashMap<Integer, Integer> map2 = new HashMap<Integer, Integer>();
for(int i = 0; i < nums2.length; i++) {
if(map.containsKey(nums2[i])) {
map2.put(nums2[i], 2);
}
}
int[] nums3 = new int[map2.size()];
int i = 0;
for(Integer key: map2.keySet()) {
nums3[i] = key;
i++;
}
return nums3;
}
}
![](https://img.haomeiwen.com/i8995644/242b4c33973242ca.png)
网友评论