zoukankan      html  css  js  c++  java
  • 每日一题之20201102(349. 两个数组的交集)

    空间换时间,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
    
  • 相关阅读:
    第四周作业
    第三周作业
    第二周作业
    7-1,求最大值及下标值
    7-1.查找整数
    打印沙漏
    赚了还是亏了
    秋末学期总结
    机器学习小知识
    python 小知识
  • 原文地址:https://www.cnblogs.com/we8fans/p/13918296.html
Copyright © 2011-2022 走看看