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

results matching ""

    No results matching ""