Intersection of Two Arrays II
Question
Given two arrays, write a function to compute their intersection.
Example: Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2].
Note:
- Each element in the result should appear as many times as it shows in both arrays.
- The result can be in any order.
Tags
- Array
- Hashmap
Thought
Use the dictionary to store the counter for one of the list and then compare the results.
Code
class Solution(object):
def intersect(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
counter = dict()
for num in nums1:
if num not in counter:
counter[num] = 1
else:
counter[num] += 1
ans = []
for num in nums2:
if num not in counter:
continue
else:
counter[num] -= 1
ans.append(num)
if counter[num] == 0:
del counter[num]
return ans