Leetcode面试经典150题-349.两个数组的交集

devtools/2024/11/15 1:01:10/

题目比较简单,散散心吧

解法都在代码里,不懂就留言或者私信

class Solution {public int[] intersection(int[] nums1, int[] nums2) {/**先排个序 */Arrays.sort(nums1);Arrays.sort(nums2);int curIndex1 = 0;int curIndex2 = 0;/**先把数组的大小设置为最大可能,最大可能就是跟小数组等长 */int[] ans = new int[Math.min(nums1.length, nums2.length)];/**记录答案的有效长度 */int validLen = 0;while(curIndex1 < nums1.length && curIndex2 < nums2.length) {/**如果和之前的数一样就跳下一个,nums1和nums2一样的逻辑 */while(curIndex1 < nums1.length && curIndex1 != 0 && nums1[curIndex1] == nums1[curIndex1 - 1]) {curIndex1 ++;}if(curIndex2 < nums2.length && curIndex2 != 0 && nums2[curIndex2] == nums2[curIndex2 - 1]) {curIndex2 ++;}/**任何一个到达最后了,没必要继续了,不会再有相等的数了 */if(curIndex1 == nums1.length || curIndex2 == nums2.length) {break;}/**如果相等,记录交集,两个都跳下一个 */if(nums1[curIndex1] == nums2[curIndex2]) {ans[validLen++] = nums1[curIndex1];curIndex1 ++;curIndex2 ++;/**else if和else里是同一个意思,谁小谁跳下一个,因为下个数更大才有可能和另外一个相等 */} else if(nums1[curIndex1] > nums2[curIndex2]) {curIndex2 ++;} else {curIndex1 ++;}}/**拷贝出有效的长度 */return Arrays.copyOf(ans, validLen);}
}

这种题出现就是送你通过的,没必须追求极致,个人觉得


http://www.ppmy.cn/devtools/113126.html

相关文章

LIMS实验室管理系统的特点

LIMS实验室管理系统在实验室管理中发挥着不可或缺的作用。首要特点是其强大的自动化数据管理功能&#xff0c;该系统能够无缝集成实验室从样品接收到测试结果录入与存储的全过程&#xff0c;显著提升了数据的准确性和可靠性&#xff0c;减少了人为错误的可能性。 流程优化是LI…

【二十一】【QT开发应用】ListWiddget图标模式

代码 demo13_listwidget::demo13_listwidget(QWidget* parent): QWidget(parent) {ui.setupUi(this);resize(600, 500);QVBoxLayout* pMainVLayout new QVBoxLayout(this);QListWidget* pListWidget new QListWidget(this);pListWidget->setViewMode(QListView::IconMode…

windows server2012 配制nginx安装为服务的时候,直接跳要安装.net框架,用自动的安装,直接失败的解决。

1、上一个已成功在安装过程中的图&#xff1a; 2、之前安装过程中错误的图&#xff1a; 3、离线安装解决&#xff1a; 下载.net framework 3.5&#xff0c;然后解压后&#xff0c;选择指定备用源路径&#xff0c;然后选择.net安装包所在目录&#xff1a; 只要指定上面全路径就…

Python [ GUI编程自学 ],虽然但是,还是想出一个系列

本文主要介绍了GUI组件的其他常用组件部分&#xff1a;optionmenu选项菜单&#xff0c;scale滑块&#xff1b;颜色框、文件选择框&#xff0c;读取文件内容&#xff1b;简单对话框、通用消息、ttk子模块问题&#xff1b; 一系列GUI编程&#xff0c;有相关的专栏&#xff0c;欢迎…

【C++】入门基础(下)

Hi&#xff01;很高兴见到你~ 目录 7、引用 7.3 引用的使用&#xff08;实例&#xff09; 7.4 const引用 【第一分点】 【第二分点1】 【第二分点2】 7.5 指针和引用的关系&#xff08;面试点&#xff09; 8、inline 9、nullptr Relaxing Time&#xff01; ———…

实习期间git的分枝管理以及最常用的命令

各位找工作实习的友友在工作之前一定要把git的相关知识掌握呀&#xff0c;我实现期间被leader说过关于git规范的相关问题了 目前已更新系列&#xff1a; 当前&#xff1a;:实习期间git的分枝管理以及最常用的命令 Redis高级-----持久化AOF、RDB原理 Redis高级---面试总结5种…

容器技术--Dockerfile 构建镜像

Dockerfile dockerfile 是一系列命令&参数构成的脚本,这些命令应用于基础镜像,最终创建一个新的镜像,可以提供一致的运行环境。【也可以登录容器,自己安装软件,最后commit为镜像】 命令 FROM 指定基础镜像(必须),如FROM ubuntu;每一个指令就生成一层镜像;RUN 运…

【前端】ref引用的作用

首先&#xff0c;我们要明确一点&#xff0c;使用vue的好处是&#xff1a; 想要减少开发者直接操作dom元素。使用组件模版&#xff0c;实现代码的服用。 ref的属性的实现是为了取代原生js中使用id、class等标识来获取dom元素。 helloworld组件 <template><div clas…