Leetcode349 数组的交集

2019年12月3日 0 作者 折纸

题目描述

file

我的解法

from collections import defaultdict
class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        flag1 = defaultdict(bool)
        flag2 = defaultdict(bool)
        res = []
        for num in nums1:
            flag1[num] = True
        for num in nums2:
            flag2[num] = True
        for num in flag1:
            if num in flag2:
                res.append(num)
        return res

 

更简洁的内置函数解法

class Solution:
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """  
        set1 = set(nums1)
        set2 = set(nums2)
        return list(set2 & set1)

 

Note

  • 我太菜了
  • set()可以直接建立集合
  • set1 & set2返回交集
  • 时间、空间复杂度本质上是一模一样的