1、题目描述:
2、实现思路及代码:
2.1 思路一:
使用集合:
去重排序,然后位运算。(总感觉使用了人家写好的。。。)
代码如下:
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
return list(set(nums1) & set(nums2)) # 两个数组先变成集合,求交集后还原为数组
2.2 思路二:
使用哈希表(字典):
先把数组nums1的元素用字典存起来(存为key),然后把nums2去重,再遍历nums2看是不是在字典中,在则就是交集(加入到结果列表中),不在就跳过。。。
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
hash_table = {}
res = []
for each in nums1:
try:
hash_table[each] += 1
except:
hash_table[each] = 1
nums2 = list(set(nums2)) # 去重
for each in nums2:
try:
hash_table[each] # 如果索引不存在,则报异常
res.append(each)
except:
continue
return res