【Python3】【力扣题】349. 两个数组的交集

【力扣题】题目描述:

【Python3】代码:

1、解题思路:集合的交集。两个数组都转为集合,获取集合的交集。

知识点:set(...):转为集合,集合的元素不重复。

              集合1.intersection(集合2):获取两个集合都有的元素,即两集合的交集。也可以:集合1 & 集合2。

              list(...):转为列表。

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        res = set(nums1) & set(nums2)
        return list(res)
        # 或者
        res = set(nums1).intersection(set(nums2))
        return list(res)

2、解题思路:遍历数组,依次判断元素是否在另一个数组中,用新列表记录两个数组都有的元素。

知识点:集合推导式:用简洁的方法创建集合,集合中的元素不能重复。{ 对元素的简单操作 for 变量 in 可迭代对象 if 条件 }

              列表推导式:用简洁的方法创建列表,列表中的元素可以重复。[ 对元素的简单操作 for 变量 in 可迭代对象 if 条件 ]

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        aset = set(nums1)
        res = {x for x in nums2 if x in aset}
        return list(res)
        # 或者
        aset, bset = set(nums1), set(nums2)
        return [x for x in bset if x in aset]

也可遍历长度短的数组,以提升一点速度。

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        aset = set(nums1)
        bset = set(nums2)
        return self.set_intersection(aset,bset)

    def set_intersection(self,set1,set2):
        if len(set1) > len(set2):
            return self.set_intersection(set2,set1)
        return [x for x in set1 if x in set2]

注解:集合推导式、列表推导式

# 集合推导式
res = {x for x in nums2 if x in aset}
# 相当于:
res = set()
for x in nums2:
    if x in aset:
        res.append(x)
print(res)

# 列表推导式
res = [x for x in bset if x in aset]
# 相当于:
res = []
for x in bset:
    if x in aset:
        res.append(x)
print(res)

3、解题思路:排序+双指针。将两数组都排序,依次比较两数组中的元素大小。若相同,则用新列表记录;若不同,则较小数字的指针往后移,继续比较,直到两数组所有元素比较结束。

知识点:列表.sort():在原列表基础上,将元素按从小到大排序。

              len(列表):获取列表长度,即列表中有多少元素。

              列表.append(...):往列表尾部添加元素。

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        res = []
        nums1.sort()
        nums2.sort()
        len_1, len_2 = len(nums1), len(nums2)
        index_1, index_2 = 0, 0
        while index_1 < len_1 and index_2 < len_2 :
            val_1 = nums1[index_1]
            val_2 = nums2[index_2]
            if val_1 == val_2 and val_1 not in res:
                res.append(val_1)
                index_1 += 1
                index_2 += 1
            elif val_1 < val_2:
                index_1 += 1
            else:
                index_2 += 1
        return res

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/200114.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis之秒杀系统

目录 Redis 秒杀 Mysql数据库设计 Mysql秒杀实现 MysqlRedis秒杀实现 秒杀是一种高并发场景&#xff0c;通常指的是在短时间内&#xff08;秒级别&#xff09;有大量用户同时访问某个商品或服务&#xff0c;争相抢购的情景。在这种情况下&#xff0c;系统需要处理大量并发请…

无需部署服务器,如何结合内网穿透实现公网访问导航页工具Dashy

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务&#xff0c;具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起&#xff0c;形成自己的导航…

思维导图软件MindNode 5 mac使用场景

MindNode 5 for Mac是一款思维导图软件产品&#xff0c;为用户在灵感启发、思绪整理、记忆协助、项目规划、授课讲演等诸多场景下提升学习和工作效率。通过导图社区和云文件无缝链接用户设备&#xff0c;方便用户随时随地收集灵感和展示文档。 MindNode 5 for Mac应用场景 助力…

亚马逊云科技 re:Invent 2023:引领科技前沿,探索未来云计算之窗

文章目录 一、前言二、什么是亚马逊云科技 re:Invent&#xff1f;三、亚马逊云科技 re:Invent 2023 将于何时何地举行四、亚马逊云科技 re:Invent 2023 有什么内容&#xff1f;4.1 亚马逊云科技 re:Invent 2023 主题演讲4.2 亚马逊云科技行业专家探实战 五、更多亚马逊云科技活…

基于springboot和vue的教务学生选课管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于Springboot和vue的教务&#xff08;学生&#xff09;管理系统拥有三种角色&#xff1a;管理员、教师和学生 管理员&#xff1a;班级管理、课程管理、创建课程、管理员管理、教师管理…

OpenCV | 模版匹配

import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline 模版匹配 模版匹配和卷积原理很像&#xff0c;模版在原图像上从原点开始滑动&#xff0c;计算模版与&#xff08;图像被模版覆盖的地方&#xff…

MySQL主从同步延迟原因与解决方案

一、MySQL数据库主从同步延迟产生的原因 MySQL的主从复制都是单线程的操作&#xff0c;主库对所有DDL和DML产生的日志写进binlog&#xff0c;由于binlog是顺序写&#xff0c;所以效率很高。 Slave的SQL Thread线程将主库的DDL和DML操作事件在slave中重放。DML和DDL的IO操作…

具有“真实触感”的动捕数据手套mhand pro,提供更精确的动作捕捉

随着人工智能的普及和万物互联&#xff0c;vr虚拟技术备受关注&#xff0c;为了更加真实的虚拟现实交互体验&#xff0c;动捕数据手套的使用逐渐普及&#xff0c;vr手套可以实时采集各手指关节运动数据&#xff0c;使用动捕数据手套可以在虚拟现实的场景中实现对真实手部运动的…

YOLOv8独家原创改进:自研独家创新MSAM注意力,通道注意力升级,魔改CBAM

💡💡💡本文自研创新改进:MSAM(CBAM升级版):通道注意力具备多尺度性能,多分支深度卷积更好的提取多尺度特征,最后高效结合空间注意力 1)作为注意力MSAM使用; 推荐指数:五星 MSCA | 亲测在多个数据集能够实现涨点,对标CBAM。 在道路缺陷检测任务中,原始ma…

前端算法专栏-数组-75.颜色分类

介绍 Hi 大家好。我是程序员库里&#xff0c;今天新开一个前端算法专栏。 接下来会分类给大家分享常考算法题目。 很多朋友也是看着这套系列算法拿到很多offer&#xff01;所以也是想分享给更多朋友&#xff0c;帮助到有需要的朋友。 分类 数组-三路快排 题目 75. 颜色分…

import matplotlib.pyplot as pit 报 ImportError: DLL Load failed: 找不到指定的模块。

环境python 3.7&#xff0c;需要安装 numpy1.21.6 | matplotlib 2.2.5 看版本依赖 numpy https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy matplotlib https://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib

每次吃一点ORB_Slam3代码 — 1. System类的初始化

文章目录 前言1. 代码调用位置2. 前置知识2.1 Sophus::SE3f 3. 代码细节3.1 System.h&#xff1a;3.2 System初始化函数&#xff1a; 小结 前言 ORB_SLAM3代码对于个人而言&#xff0c;感觉十分复杂。因为没有一些几何视图基础加上C薄弱&#xff0c;所以一直没法入门。基于这种…

CSS特效020:涌动的弹簧效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

商用车的智慧眼车规级激光雷达

1、商用车自动驾驶技术&#xff1a;巨大的降本增效空间 2、感知是第一步&#xff1a;看懂环境路况才能安全的自动驾驶 3、多传感器融合&#xff0c;感知信息冗余&#xff0c;保障自动驾驶安全 4、商用车需要什么样的激光雷达 5、车规级激光雷达的软硬件成熟度及延展性 &#x…

Python三级 每周练习题28

如果你感觉有收获&#xff0c;欢迎给我微信扫打赏码 ———— 以激励我输出更多优质内容 题目: 1.运行hex(),得到 xa&#xff0c;括号里面填什么? 2.十六进制数100&#xff0c;对应10进制数是多少? 3.int(‘13’,8) 返回值是? 4.int(‘100010’,2) 返回值是? 5.int(‘2af…

模拟实现offsetof宏(详解)

我们在以前学过这个offsetof函数&#xff0c;知道它的功能是求指针相较于起始位置的偏移量&#xff0c;我们今天要来写出一个宏&#xff0c;计算结构体中某成员变量相对于起始位置的偏移。 目录 1.offsetof函数 1.1offsetof函数介绍 1.2offsetof函数代码实现 2.offsetof函数…

漏电保护器工作原理

漏电保护器 漏电保护器是低压线路中最常用的保护器之一&#xff0c;简称漏保&#xff0c;又称漏电开关或漏电断路器。漏电保护器除了具有空开的所有保护功能外&#xff0c;还具备漏电保护功能。 需要了解 一根通电导线可以产生磁场&#xff0c;磁场与电流方向遵循右手螺旋关…

没想到吧!成功的图标设计,只需遵循这几个原则

图标在任何用户界面环境中都是不可或缺的元素。虽然许多图标小到可能被忽视&#xff0c;但它们在解决设计难题和用户体验问题上却起着决定性的作用。作为一名UI设计师&#xff0c;你必须要掌握的基本技巧之一就是图标设计。理解并应用图标设计的原则不仅可以帮助设计师快速定位…

SQL Server :关系模式的键码与闭包计算

一、键码的定义 首先我们给出 键码的定义 如下 定义&#xff1a;已知 R<U,F> 是属性集 U 的关系模式&#xff0c;F是属性集 U 上的一组函数依赖&#xff0c;设 K 为 R<U,F> 中的属性或属性组合&#xff0c;若K ⇒ U - K 且 K 的任何真子集都不能决定 U&#xff0c…

你了解vue的diff算法吗?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue中的diff算法 目录 一、是什么 二、比较方式 三、原理分析 小结 一、是什么 diff 算法是一…