0
点赞
收藏
分享

微信扫一扫

350. 两个数组的交集 II

慕容冲_a4b8 2022-01-05 阅读 42

在这里插入图片描述
‘’’
思路:先用常规方法确定哪些元素是交集,后判断交集元素在nums1和nums2的个数的是不是大于1
如果两个都大于1,那么填入两个数中较小 - 1 个 当前元素
‘’’
但是遗憾的是又超时了
改进如下:
‘’‘
思路:考虑到是将集合转成list花费大量时间,所以改成遍历元素种数(通过set)来改善算法,后往结果数组中增加元素。
‘’‘

class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        
        res = set(nums1) if len(set(nums1)) > len(set(nums2)) else set(nums2)
        lis = []
        for i in res:
            a,b = nums1.count(i),nums2.count(i)
            if  a >= 1 and b >= 1:
                temp = min(a,b)
                for _ in range(temp):
                    lis.append(i)
        return lis
举报

相关推荐

0 条评论