题目链接:https://leetcode.cn/problems/intersection-of-two-arrays/description/

核心思想:哈希法-set集合-dict字典

用dict字典去统计数组1的每个数字出现的次数

最终答案用set存储,保证唯一性

遍历数组2,如果数组2的某个数字在数组1中出现过,就添加到set集合,同时删除dict字典对应的值。

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        table = {}
        for num in nums1:
            table[num] = table.get(num,0) + 1

        res = set()
        for num in nums2:
            if num in table:
                res.add(num)
                del table[num]
        
        return list(res)
        
# @lc code=end
  • get()方法的作用:

  • ​基本功能​:dict.get(key, default) 会尝试从字典中获取 key 对应的值:

    • 若 key 存在,返回其对应的值;

    • 若 key 不存在,返回指定的默认值 default(默认为 None)