zoukankan      html  css  js  c++  java
  • LeetCode349两个数组的交集

    # coding:utf-8
    """
    Name : LeetCode349.py
    Author  : qlb
    Contect : 17801044486@163.com
    Time    : 2021/2/5 10:19
    Desc: 两个数组的交集
    """
    from typing import List
    
    #解题思路
    #如果用列表存储元素的话 查找某个元素的时间复杂度为O(n) 用集合存储元素的话 查找某个元素的时间复杂度为O(1)
    # 所以关键在于使用集合存储元素 因为集合不仅记录了元素值 也记录了元素的内存地址
    # 首先将列表转换为集合
    class Solution:
        def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
            nums1 = set(nums1)
            nums2 = set(nums2)
            if len(nums1) >= len(nums2):
                nums11 = nums1
                nums22 = nums2
            else:
                nums11 = nums2
                nums22 = nums1
            res = self.subIntersection(nums11,nums22)
            #以下使用了自带的集合求交集的方法
            # res = nums1 & nums2
            # res = list(res)
            return res
        def subIntersection(self,nums1,nums2):
            '''
    
            :param nums1: 长度大
            :param nums2: 长度小
            :return:
            '''
            res = []
            for num in nums2:
                if num in nums1:
                    res.append(num)
            return res
    
    test = Solution()
    res = test.intersection([1,2,2,1],[2,2])
    print (res)
  • 相关阅读:
    MYSQL索引使用
    事务的概念是什么,有哪些基本属性?
    springboot和springmvc的区别
    List、Map、Set的区别与联系
    MyBatis-动态SQL
    MyBatis-映射文件
    MyBatis操作数据库及全局配置文件
    Jmeter的基本使用
    MySQL索引优化
    MySQL索引
  • 原文地址:https://www.cnblogs.com/cnugis/p/14376457.html
Copyright © 2011-2022 走看看