class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
lookup = set(nums1) # 这个其实就相当于是哈希表做法。无序不重复的元素集
result = []
for i in nums2:
if i in lookup:
result.append(i)
lookup.discard(i)
return result
if len(nums1)>len(nums2):
nums1,nums2=nums2,nums1#判断一下哪个更短,交换一下,用更短的那个做lookup
cnt1=Counter(nums1)#这个其实就相当于是哈希表做法。
result=[]
for i in nums2:#在长的里面寻找,如果已经在cnt1中出现,添入结果,并次数-1.这里要做一个判断就是如果哈希表里他的次数已经为0的时候,就要把他删掉。
if i in cnt1:
result+=i,
cnt1[i]-=1
if cnt1[i]==0:
cnt1.pop(i)
return result