算法第十六天:leetcode349.两个数组的交集

news2024/9/22 17:24:05

一、两个数组的交集的题目描述与链接

  349.两个数组的交集如下表所示,您可以直接复制下面网址进入力扣学习,在观看下面的内容之前您一定要先做一遍哦,以便让你印象更加深刻! 

https://leetcode.cn/problems/intersection-of-two-arrays/description/icon-default.png?t=N7T8https://leetcode.cn/problems/intersection-of-two-arrays/description/

1.1 该题的题目描述如下:

 给定两个数组 nums1 和 nums2 ,返回 它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序 。

  示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]

  示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的

  提示:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

 

 二、Java版

   该题可用集合的方法去解题,具体代码如下所示:

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        //if(nums1==null||nums1.length==0||nums2==null){
        //    return new int[0];
        //}
        Set<Integer> set1=new HashSet<>();   //集合可删除重复元素
        Set<Integer> result=new HashSet<>();
        for(int i : nums1){
            set1.add(i);//在集合中添加num1的元素
        }
        for(int i : nums2){
            if(set1.contains(i)){ //set1里面的元素包含着nums2
                result.add(i);
            }
        }
        //另外创建一个数组存放元素,最后要返回数组
        int[] arr=new int[result.size()];
        int j=0;
        for(int i : result){ //遍历result的结果
            arr[j++]=i;
        }
        return arr;
    }
}

 

三、两个数组的交集具体思路 

  1. 首先创建两个集合set1和result,然后遍历nums1,在集合set1里面中添加num1的元素;
  2. 遍历nums2,然后要先判断一下set1中是否包含着num2,如果可以的话,则在result集合里面添加,集合可以删除重复元素;
  3. 最后创建一个数组arr保存遍历result的结果,输出结果即可。

 

    感谢各位读者的阅读与支持,您的支持是我前进的动力!我希望我的博文能够带给您双指针的一些算法知识和启发。如果您有任何问题或意见,请随时联系我或在评论区评论。希望本题的算法知识对大家有帮助,谢谢各位读者的支持!!!

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity强化工程 之 音效

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正 首先&#xff0c;音频这块组件较少&#xff0c;但是内容很重要&#xff0c;因为对于任何一款非特殊面向人群的游戏来说&a…

【人工智能】边缘计算与 AI:实时智能的未来

&#x1f48e; 我的主页&#xff1a;2的n次方_ &#x1f48e;1. 引言 随着物联网设备数量的爆炸性增长和对实时处理需求的增加&#xff0c;边缘计算与人工智能&#xff08;Edge AI&#xff09;成为一个热门话题。Edge AI 通过在本地设备上运行 AI 算法&#xff0c;减少对云计…

【秋招笔试】24-07-27-OPPO-秋招笔试题(算法岗)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 💡 第一题贪心模拟…

月木学途开发 3.2安装Nacos

安装jdk 查看jdk是否安装 java -version 下载网址&#xff1a;https://www.oracle.com/java/technologies/downloads/?er221886 下载命令&#xff1a; wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 解压&#xff1a; tar -zxvf jdk-17_…

【OpenCV C++20 学习笔记】imgproc模块-绘图基础

imgproc模块-绘图基础 Point和Scalar类型Point类型Scalar类型 绘图操作创建图片对象和显示窗口绘制椭圆绘制圆绘制多边形绘制矩形画线 完整代码 Point和Scalar类型 Point类型 该类型表示一个2D的点&#xff0c;其坐标由图像中的 x x x和 y y y坐标确定。可以这样定义一个Poin…

如何基于欧拉系统完成数据库的安装

一、安装 当我们直接进行安装软件包时&#xff0c;会提示有冲突&#xff0c;此时&#xff0c;我们应该这样来解决 使用rpm命令 [rootlocalhost yum.repos.d]# rpm -qa | grep selinux使用 rpm命令卸载以下两个软件包 [rootlocalhost yum.repos.d]# rpm -e selinux-policy-3…

B站安全开发流程落地实践

一. 什么是安全开发生命周期&#xff08;SDL&#xff09; 1.1 SDL诞生背景 随着互联网技术的快速发展&#xff0c;网络系统及应用在给人们的生活带来巨大便利的同时&#xff0c;信息安全问题也逐渐成为用户和企业关注的焦点。然而&#xff0c;安全问题的管理和解决需要一个系统…

TCP半关闭过程

TCP半关闭过程 简介 tcp半关闭是指在一端发送完数据后&#xff0c;关闭发送通道&#xff0c;而保持接收通道继续接收数据。 过程 这里设序号为Seqx&#xff0c;确认号为Acky 客户端&#xff08;也可以是服务端发起&#xff09;发送 [FIN&#xff0c;ACK] 报文段&#xff0…

【已解决】树莓派5使用VNC远程,无法正常显示桌面,黑屏提示:cannot currently show the desktop

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

外贸干货|业务员寻找客户的7个思维技巧,都掌握的才算合格

更多外贸干货及开发客户的方法&#xff0c;尽在微信【千千外贸干货】 做外贸最基本的是找到客户&#xff0c;如果没有完成这一步&#xff0c;纵使你有千万种转化客户的方法&#xff0c;也都只是纸上谈兵。 #一 关键词法 选择适当的关键词&#xff0c;直接查找潜在客户发布的求…

Manim实现在坐标轴上添加元素和获取元素

Manim实现在坐标轴上添加元素和获取元素 1.坐标轴上获取元素 构造函数&#xff1a; _get_axis_label(label, axis, edge, direction, buff0.1) 函数 _get_axis_label 旨在为图形表示中的给定轴生成和定位标签&#xff08;通常用于绘图或数学上下文中&#xff0c;可能是在某…

PostgreSQL 15

一、安装前的准备 1、版本信息 操作系统CentOS 7.9.2009PostgreSQL 版本PostgreSQL 15-15.7 2、下载安装包 RPM Chart - PostgreSQL YUM Repositoryhttps://yum.postgresql.org/rpmchart/进入官网&#xff0c;找到相应版本 点击框选内容 依次进入下载页面&#xff0c;下载相…

ASUS/华硕幻15 2020 冰刃4 GX502L GU502L系列 原厂win10系统 工厂文件 带F12 ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;一键恢复&#xff0c;以及机器所有驱动软件。 系统版本&#xff1a;windows10 原厂系统下载网址&#xff1a;http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意&#xff1a;仅支持以上型号专用…

免费好用的 CI/CD 工具有哪些?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab &#xff1a;https://gitlab.cn/install 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 更多关于极狐GitLab &a…

V.PS日本东京VPS详细测评

V.PS日本VPS怎么样&#xff1f;V.PS日本机房怎么样&#xff1f; V.PS在日本有东京和大阪两个机房都在运作VPS/云服务器&#xff0c;大阪机房的默认接入IIJ网络&#xff0c;日本东京机房的是日本软银网络&#xff0c;另外日本东京分两个系列&#xff0c;一个是Intel另外一个是AM…

【文件fd】深入理解重定向和缓冲区

目录 1.重定向 1.1dup2 2.缓冲区 2.1什么是缓冲区 2.2为什么存在缓冲区 2.3缓冲区的刷新策略 2.4查看源码​ 3.0/1/2 3.1 0/1/2是什么&为什么存在 3.2 2和1区别 3.3 2为什么存在 1.重定向 重定向的本质&#xff1a;是在内核中改变文件描述符表特定下标的内容和…

Flutter 插件之http(介绍、使用、二次封装)

背景 在我们日常开发过程中,经常会使用到网络请求,而在Flutter插件中,最常用的请求插件一共两个,分别是: 1、dio 2、http 其中dio我已经做过详细介绍了(post、get等请求、文件上传、请求重试等),这里就不做过多阐述,下面附上文章链接,如有需要可前往查看。 http…

「11月·西安」第十二届信息系统与计算技术国际会议(ISCTech 2024)

随着信息技术的飞速发展&#xff0c;信息系统与计算技术已成为推动社会进步与产业升级的重要力量。在这样的背景下&#xff0c;第十二届信息系统与计算技术国际会议&#xff08;ISCTech 2024&#xff09;的召开&#xff0c;无疑为全球专家学者搭建了一个交流思想、共享成果的高…

ProfiNet 转 CAN/CANopen 网关

一、功能概述 1.1 设备简介 本产品是 PN(Profinet)和 COE(CANopen)/CAN(自由口)网关&#xff0c;使用数据映射 方式工作。 本产品在 PN 侧作为 PN IO 从站&#xff0c;接西门子 PLC&#xff1b;在 COE 侧做为 COE 主站&#xff0c; 接 COE 设备&#xff0c;如伺服、变频器、…

漏洞挖掘 | edusrc记一次某中学小程序渗透测试

一、搜集渗透目标 现在的EDU挖web端的上分效率远不如小程序&#xff0c;因此这篇文章浅浅记录一次小程序的挖掘吧。如果各位大牛想要快速出洞&#xff0c;不妨跳过大学&#xff0c;学院等小程序&#xff0c;而重点关注小学、中学、幼儿园等&#xff0c;这些小程序的出洞率还是…