from collections import defaultdict
def intersect(nums1, nums2):
if len(nums1)>len(nums2):
return intersect(nums2,nums1)
lookup = defaultdict(int)
for i in nums1:
lookup[i] += 1
res = []
for i in nums2:
if lookup[i]>0:
res.append(i)
lookup[i] -= 1
return res