'''
Given two arrays, write a function to compute their intersection.

Example 1:

Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2]
Example 2:

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [9,4]
Note:

Each element in the result must be unique.
The result can be in any order.
'''


# 1 set()
class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        return set(nums1) & set(nums2)

# 2 Hash
class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        compare = {}
        result = []
        for i in nums1:
            compare[i] = None
        for j in nums2:
            if compare.__contains__(j):
                result.append(j)
                del compare[j]
        return result