美文网首页
每日一题之20201102(349. 两个数组的交集)

每日一题之20201102(349. 两个数组的交集)

作者: 米洛丶 | 来源:发表于2020-11-02 20:03 被阅读0次

    空间换时间,hash表2次遍历(Python)

    • 潇洒解法:

      利用Python的set数据结构,完成交集操作

    class Solution:
        def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
            return list(set(nums1) & set(nums2))
    
    
    11.jpg
    • 啰嗦解法(但很快)

      先建立一个dict,遍历数组1,然后将数组里面的值都放到temp里面,由于dict本身不能有重复的key,相当于天然过滤掉了重复的数据此步骤约等于set(nums1)

      接着就是取并集,遍历数组2,如果数组2的元素在temp里面出现,则添加到result数组中。

      但是这里要注意的是,result可能重复添加

      所以我们在添加一个数字到result以后,将temp里面该数字对应的value改成False,以防重复添加。

    222.jpg
    class Solution:
        def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
            temp = {}
            result = []
            for n in nums1:
                temp[n] = True
            for x in nums2:
                if temp.get(x):
                    result.append(x)
                    temp[x] = False
            return result
    

    相关文章

      网友评论

          本文标题:每日一题之20201102(349. 两个数组的交集)

          本文链接:https://www.haomeiwen.com/subject/jetvvktx.html