题目(题目链接)
方法一:哈希表
我这里用了字典做哈希表,一般用list就可以了
class Solution:
def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
haxi_dict = {x:0 for x in range(1001)} # 利用字典推导式创建哈希表
result = []
# 字典键对应的值为该数字的出现次数,遍历nums1并修改出现次数
for x in nums1:
haxi_dict[x] += 1
# 遍历nums2并查询字典,如果该对应值的次数大于0,将这个数append到结果数组里,并且字典相应数字的值-1
for y in nums2:
if haxi_dict[y] > 0:
result.append(y)
haxi_dict[y] -= 1
return result
方法二:counter (知识点参考博客)
应用:
class Solution:
def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
return [i for i in (Counter(nums1)&Counter(nums2)).elements()]
如果不能直接使用需要先导入
import collections