Leetcode349两个数组的交集(java实现,思路超清晰想学会的进来!)

今天,博主分享的题目是leetcode上的349两个数组的交集。题目描述如下:
在这里插入图片描述
解题思路:在这里我们分享一个做题的小技巧,我们拿到题如果题目描述中有判断某个集合中有没有哪个元素,类似这种要求的我们首先应该考虑是否可以使用哈希表。那么哈希表的3中结构分别是数组、set和map,这三种应该如果选择呢?当元素较少时可以考虑数组,数组底层是直接进行映射效率较快,set和map底层是使用红黑树,在查询时还要进行搜索的步骤,相对于数组效率较慢,而set比较适合数据较大时的场景,map适合元素较为分散的场景。
注意:本道题返回的结果需要进行去重处理,而set集合是不允许存在重复元素,因此最后选择使用set进行题解。
我们可以首先建立两个set集合set1set2set1用于存放nums1中的元素,并将nums中的元素存入set1,然后我们遍历nums2当set1与nums2存在相同元素时,将元素存入set2,最后我们创建一个数组arr,用于接收set2中的元素并进行返回即可。
代码实现:

 public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer>hash1=new HashSet();
        Set<Integer>hash2=new HashSet();
        int i =0;
        for (i=0;i<nums1.length;i++){
            hash1.add(nums1[i]);
        }
        for (i=0;i<nums2.length;i++){
            if (hash1.contains(nums2[i])){
                hash2.add(nums2[i]);
            }
        }
        int[] arr = new int[hash2.size()];
        int j = 0;
        for(Integer k : hash2){
            arr[j++] =  k;
        }

        return arr;
    }

这里我们再强调一个知识点,那就是最后我们在进行返回时,不能将set2集合直接进行返回,因为我们题目要求返回的时int数组,因此我们需要遍历set集合并将集合中的元素存放到数组中,我们一般是利用迭代器进行对集合遍历,那么这样操作起来太过繁琐,因此这里我们使用是增强for循环,增强for循环可以可以用来遍历数组、集合、列表等元素序列类型的数据结构。下面的代码是增强for循环的用法示例:

int[] nums = {1, 2, 3, 4, 5};
for (int num : nums) {
    System.out.print(num + " ");
}

增强for循环的优点是简洁明了,可以提高代码的可读性和可维护性。但是它也有一些缺点,例如无法获取当前元素的下标,不支持在循环中修改集合或数组的元素等。因此,在某些情况下,仍然需要使用传统的for循环来实现更复杂的逻辑。
那么本次题目的分享就到这里结束了,如果觉得博主写的博文对你有帮助希望给博主来个三连谢谢(_)!

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

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

相关文章

探索 C# 中的程序运行目录获取方法

探索 C# 中的程序运行目录获取方法 引言 在 C# 开发中&#xff0c;有时需要确定您的应用程序的运行目录。这可能是为了读取配置文件、存储日志&#xff0c;或者访问与应用程序位于同一目录的其他资源。C# 提供了几种方法来获取当前程序的运行目录。本文将探讨这些方法及其使用…

【漏洞复现】天融信TOPSEC static_convert 远程命令执行

漏洞描述 天融信TOPSEC Static_Convert存在严重的远程命令执行漏洞。攻击者通过发送精心构造的恶意请求,利用了该漏洞,成功实现在目标系统上执行任意系统命令的攻击。成功利用漏洞的攻击者可在目标系统上执行恶意操作,可能导致数据泄露、系统瘫痪或远程控制。强烈建议立即更…

google关键词分析怎么做?

想分析关键词那自然是要使用工具&#xff0c;而分析一个关键词比较看重的有两点&#xff0c;搜索量以及竞争程度。 搜索量无非就是关键词在谷歌搜索引擎被搜索的次数&#xff0c;这个数量越大&#xff0c;就证明这个关键词被人搜的越多次&#xff0c;我们要做的词&#xff0c;肯…

水产冷链物流行业零下25℃库架一体 海格里斯HEGERLS四向穿梭式冷藏冷库智能密集仓

随着国内外仓储物流整体规模和低温产品消费需求的稳步增长&#xff0c;冷链市场应用潜力不断释放。在传统“货架叉车”的方式下&#xff0c;货物、人员及机械设备不断进出&#xff0c;容易造成温度波动&#xff0c;导致冷量流失。立体冷库则以更高密度、更具成本效益的方式&…

【C++进阶06】红黑树图文详解及C++模拟实现红黑树

一、红黑树的概念及性质 1.1 红黑树的概念 AVL树用平衡因子让树达到高度平衡 红黑树可以认为是AVL树的改良 通过给每个节点标记颜色让树接近平衡 以减少树在插入节点的旋转 在每个结点新增一个存储位表示结点颜色 可以是Red或Black 通过对任何一条从根到叶子的路径上 各个结点…

go语言中的函数和方法

函数定义 1.1.1. golang函数特点&#xff1a; • 无需声明原型。• 支持不定 变参。• 支持多返回值。• 支持命名返回参数。 • 支持匿名函数和闭包。• 函数也是一种类型&#xff0c;一个函数可以赋值给变量。• 不支持 嵌套 (nested) 一个包不能有两个名字一样的函数。• 不…

PostgreSQL从小白到高手教程 - 第41讲:postgres表空间备份与恢复

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第41讲&#…

OpenCV-Python(33):SURF算法

目标 SUFR 是什么OpenCV 中的SURF 原理 学习了解过SIFT 算法后我们知道&#xff0c;它是对图像关键点进行检测和描述的&#xff0c;具有尺度不变的特性&#xff0c;但是这种算法的执行速度比较慢&#xff0c;人们需要速度更快的算法。2006年Bay,H.,Tuytelaars,T. 和Van Gool,…

盲盒小程序搭建,打造互联网电商模式

当前&#xff0c;盲盒作为年轻人的消费新选择&#xff0c;一度创下“销费奇迹”&#xff0c;深受年轻人的欢迎&#xff0c;成为了一种热门消费模式&#xff01;盲盒小程序是盲盒市场互联网时代发展下的产物&#xff0c;也是当下盲盒销售中的一种新形式。下面具体分析盲盒小程序…

从传统到智能:机器视觉检测赋能PCB行业数字化转型!

PCB板在现代电子设备中是一个重要的组成部分&#xff0c;它是用来集成各种电子元器件的信息载体。在电子领域中&#xff0c;PCB板有着广泛的应用&#xff0c;而它的质量直接影响到产品的性能。随着电子科技技术和电子制造业的发展&#xff0c;贴片元器件的体积 变小&#xff0c…

RT-Thread 中断管理接口

中断服务程序挂接 系统把用户的中断服务程序&#xff08;handler&#xff09;和指定的中断号关联起来&#xff0c;可调用如下的接口挂载一个新的中断服务程序&#xff1a; rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t handler, void*param, char…

重磅!2024国家自然科学基金项目指南发布

1月11日&#xff0c;国家自然科学基金委员会正式发布《2024年度国家自然科学基金项目指南 》。 相比去年的指南&#xff0c;今年有如下变动&#xff1a; 申请规定具体如下&#xff1a; 各项目申请指南&#xff1a; 来源&#xff1a;国家自然科学基金委员会&#xff0c;爱科会易…

mysql忘记root密码后怎么重置

mysql忘记root密码后重置方法【windows版本】 重置密码步骤停掉mysql服务跳过密码进入数据库在user表中重置密码使用新密码登录mysql到此&#xff0c;密码就成功修改了&#xff0c;完结&#xff0c;撒花~ 重置密码步骤 当我们忘记mysql的密码时&#xff0c;连接mysql会报这样的…

无代码DIY图像检索

软件环境准备 可参见《HuggingFists-低代码玩转LLM RAG-准备篇》中的HuggingFists安装及Milvus安装。 流程环境准备 图片准备 进入HuggingFists内置的文件系统&#xff0c;数据源->文件系统->sengee_fs_settings_201创建Image文件夹将事先准备的多张相同或不同种类的图…

GPCR蛋白一般残基编号(Generic residue numbering)

文章目录 前言定义特殊情况参考连接 前言 在相应的文章中看到对于对于描述GPCR中的序列位置&#xff0c;往往在除了在当前蛋白的氨基酸序列序号意外&#xff0c;会在右上角标注一个类似于6 x 49的编号。经查这个编号有一个统一名称&#xff1a;Generic residue numbering。本文…

TCP/IP 网络模型

TCP/IP 网络通常是由上到下分成 4 层&#xff0c;分别是应用层&#xff0c;传输层&#xff0c;网络层和网络接口层。 应用层 应用层专注于为用户提供应用功能&#xff0c;比如 HTTP、FTP、Telnet、DNS、SMTP等。我们电脑或手机使用的应用软件都是在应用层实现。应用层是不用去关…

2024年T电梯修理证考试题库及T电梯修理试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年T电梯修理证考试题库及T电梯修理试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大纲随机出的T电…

【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 懒汉式&#xff08;Lazy Initialization&#xff09;&#xff1a; 双重检查锁定&#xff08;Double-Checked Locking&#xff09;…

21-链表-奇偶链表

这是链表的第21题&#xff0c;力扣链接。 给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。 …

什么是冒泡排序?如何实现?

一、是什么 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff0c;是一种计算机科学领域的较简单的排序算法 冒泡排序的思想就是在每次遍历一遍未排序的数列之后&#xff0c;将一个数据元素浮上去&#xff08;也就是排好了一个数据&#xff09; 如同碳酸饮料中二氧化碳的…