349. Intersection of Two Arrays

题目描述和难度

  • 题目描述:

给定两个数组,写一个函数来计算它们的交集。

例子:

 给定 num1= [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].

提示:

  • 每个在结果中的元素必定是唯一的。
  • 我们可以不考虑输出结果的顺序。

思路分析

求解关键:注意题目要求“每个在结果中的元素必定是唯一的”,设计一个 set 判断元素是否出现过,如果已经出现过,(1)先记录到最后返回的结果中;(2)从 set 中删除,以免 nums2 中重复的记录被记录。

参考解答

参考解答1

class Solution:
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        result = []
        # 去重
        s = set(nums1)
        for num in nums2:
            if num in s:
                result.append(num)
                # 发现一样的元素以后,就从 set 里删除,可以避免重复
                s.remove(num)
        return result

本篇文章的地址为 https://liweiwei1419.github.io/leetcode-solution/leetcode-0349-intersection-of-two-arrays ,如果我的题解有错误,或者您有更好的解法,欢迎您告诉我 liweiwei1419@gmail.com