[LeetCode] 350. 两个数组的交集 II

78 阅读1分钟

350. 两个数组的交集 II

Easy

思路

本题也有多种方法求解,这边选择使用哈希表方式

  • 使用一个数组,统计数组中各个元素的个数
  • 遍历另一个数组,如果这个这个数组中的元素在计数中,且个数不为0,说明这个元素是公共的
  • 提取公众元素之后,需要更新技术。将这个元素的技术-1,说明已经找到了一个相同的元素

以上,尝试写一下代码,AC!

代码

python3

class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
      r = []
      c = dict(collections.Counter(nums1))
      for i in nums2:
        if i in c and c[i]:
          r.append(i)
          c[i] -= 1
      return r