php 两个数组 交集_两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。

示例1:

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

示例2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]
  • 说明:

输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。

我们可以不考虑输出结果的顺序。

  • 进阶:

如果给定的数组已经排好序呢?你将如何优化你的算法?

如果 nums1 的大小比 nums2 小很多,哪种方法更优?

如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?

题解分析:

首先,我们可以确定,要是数组本身是有序的,很快就可以得出数组的交集是什么

那么我们就先对数组进行排序。然后通过双指针遍历两个数组

在开始遍历的时候,两个指针都位于初始位置,然后往右移动指针

1、当两个指针的数据不相等时,则较小数据的指针向右移动

2、当两个数据相等时,则添加数据到结果集中,并且将两个指针都向右移动

3、当其中一个指针超出界限时,则遍历结束

class Solution {public int[] intersect(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);int length1 = nums1.length, length2 = nums2.length;int[] intersection = new int[Math.min(length1, length2)];int index1 = 0, index2 = 0, index = 0;while (index1 < length1 && index2 < length2) {if (nums1[index1] < nums2[index2]) {index1++;} else if (nums1[index1] > nums2[index2]) {index2++;} else {intersection[index] = nums1[index1];index1++;index2++;index++;}}return Arrays.copyOfRange(intersection, 0, index);}
}

执行结果:

4487c9417d6523717658885045fdea5f.png

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

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

相关文章

11纯代码 oc xcode_iOS代码染色原理及技术实践

背景随着业务的迅速发展&#xff0c;业务代码逻辑的复杂度增加。QA测试的质量对于产品上线后的稳定性更加重要。一般QA测试的工作流程分为两大项&#xff1a;自动化测试和人工测试。这两种测试后都需要得到代码覆盖率。自动化测试的覆盖率&#xff0c;在双端都有比较成熟的方案…

删除了几个月的照片能找回么_手机删除照片怎么恢复正常?自动修复,一看就会...

手机删除照片怎么恢复正常&#xff1f;都说鱼的记忆只有七秒钟&#xff0c;那你的记忆是多久呢&#xff1f;曾经手机拍照留念的照片&#xff0c;是否由于一些微不足道的事情&#xff0c;冲动之下删掉了!想要还原删除掉的手机照片&#xff0c;首先要找对照片恢复器&#xff1a;手…

并发测试mysql_Jmeter性能测试系列——结果分析与报告输出

场景运行结束后&#xff0c;需针对测试结果进行性能分析。通常而言&#xff0c;Jmeter性能测试结果分析可从性能测试指标达成方面着手&#xff0c;然后再分析测试过程中出现的异常情况&#xff0c;逐一判断是否存在性能风险。1.用户登陆并发测试结果分析获取测试指标提取阶段获…

怎样取消连续包月自动续费_苹果手机连续包月会员怎么取消 设置iPhone解除应用自动续费...

[闽南网]相信我们都有在用苹果手机下载软件&#xff0c;但是有时候一个不小心就被开通了包月续费&#xff0c;这个的话会长期进行扣费&#xff0c;要是不想开通的话可以进行取消&#xff0c;不知道的话可以查看下面的教程。取消收费项目是可以从电脑端和手机端两个渠道来进行&a…

配置snmp_多种设备基于 SNMP 协议的敏感信息泄露漏洞数据分析报告

作者&#xff1a;知道创宇404实验室1. 更新情况2. 事件概述SNMP协议[1]&#xff0c;即简单网络管理协议&#xff08;SNMP&#xff0c;Simple Network Management Protocol&#xff09;&#xff0c;默认端口为 161/UDP&#xff0c;目前一共有3个版本&#xff1a;V1&#xff0c;V…

建立项目接口文档_分享:一步一个脚印,vue入门之使用mockjs搭建vue项目测试服务器...

在以前的文档中&#xff0c;我们构建了vue项目的整体架构&#xff0c;详见vue入门&#xff1a;vue项目架构设计起步&#xff0c;现在我们主要对其中的mock server 进行完善。一、概述前后端分离的项目优点之一就是可以前后端并行开发&#xff0c;互不影响。那么在后端接口没有完…

单机最大负载_电流互感器允许接入的实际最大二次负载(注电案例1865)

某国外水电站安装的水轮发电机组&#xff0c;单机额定容量为 120MW&#xff0c;发电机额定电压为 13.8kV&#xff0c;cosφ0.85。发电机、主变压器采用发变组单元接线&#xff0c;未装设发电机断路器&#xff0c;主变高压侧三相短路时流过发电机的最大短路电流为 19.6kA。发电机…

html video显示进度条_使用 tqdm 在 Python 应用中显示进度 | Linux 中国

如果你的程序需要一段时间才能显示结果&#xff0c;可通过显示它的进度来避免让用户感到沮丧。来源&#xff1a;https://linux.cn/article-12990-1.html作者&#xff1a;Moshe Zadka译者&#xff1a;geekpi&#xff08;本文字数&#xff1a;3093&#xff0c;阅读时长大约&#…

课题开题报告范文样本_成都汽车职业技术学校举行 2020年省、市、区课题开题报告会...

01为深入贯彻落实国务院、省、市、区关于深化教育教学改革的重要精神&#xff0c;充分发挥教育科研的先导作用&#xff0c;明晰课题研究的思路并提高课题研究的针对性&#xff0c;1月12日&#xff0c;成都汽车职业技术学校举行2020年省、市、区课题开题报告会。本次开题报告会邀…

安装mysql5 1步骤_Linux系统安装MySQL详细步骤(mysql-5.1等)

第一步、查找以前是否安装有mysql使用下面命令&#xff1a;rpm -qa|grep -i mysql如果显示有包则说明已安装mysql第二步、如果已安装&#xff0c;则需要删除已安装的数据库可按以下步骤删除数据库&#xff1a;删除包命令&#xff1a;rpm -e --nodeps 【包名】rpm -e --nodeps …

mysql分页查询关键_MySQL优化教程之超大分页查询

背景基本上只要是做后台开发&#xff0c;都会接触到分页这个需求或者功能吧。基本上大家都是会用MySQL的LIMIT来处理&#xff0c;而且我现在负责的项目也是这样写的。但是一旦数据量起来了&#xff0c;其实LIMIT的效率会极其的低&#xff0c;这一篇文章就来讲一下LIMIT子句优化…

mysql 分页 jdbc_JDBC调用MySQL分页存储过程实现(一)

DROP PROCEDURE IF EXISTS pro_pager;CREATE DEFINER root% PROCEDURE pro_pager(in p_pageNo int, /*当前页*/in p_perPageCnt int, /*每页记录数*/in p_sql VARCHAR(2000), /*查询sql语句*/out v_totalRowsCnt int, /*记录总条数*/out v_totalPageCnt int) /*记录总页数*/BE…

zabbix proxy mysql_zabbix proxy 配置

在监控大量服务器时&#xff0c;如果将所有的请求都发送到一个zabbix server上&#xff0c;将会对我们的zabbix server造成很大的压力&#xff0c;我们在规划多个区域或机房进行监控的时候&#xff0c;会考虑到使用zabbix proxy 来代理zabbix server 的部分功能。zabbix server…

mvc mysql linq_MVC3+Linq to sql 显示数据库中数据表的数据

1&#xff1a;首先创建asp.net mvc3应用程序 2&#xff1a;创建项目完成后 找到controllers文件鼠标右击选择添加控制器 3 为models文件夹添加一个linq to sql类文件&#xff0c;然后把数据库中的数据库复制进来。如截图操作 4&#xff1a;添加控制器好后会生成一个HomeControl…

mysql工作表格制作教程_Access制作复杂报表

何制作复杂报表利用excel输出复杂报表 在读这篇文章以前首先要提醒大家&#xff0c;Access 本身的报表也具有很强的实用性和强大的功能&#xff0c;只有当你发掘了其本身全部的功能却仍不能满足你对报表的特殊要求时才请使用 Excel 输出报表。很明显&#xff0c;使用 Excel 输出…

php+mysql投票代码_PHP+jQuery+MySql实现红蓝投票功能

本文是一篇综合知识应用类文章&#xff0c;需要您具备PHP、jQuery、MySQL以及html和css方面的基本知识。本文在《PHPMySqljQuery实现的“顶”和“踩”投票功能》一文基础上做了适当改进&#xff0c;共用了数据表&#xff0c;您可以先点击了解这篇文章。HTML我们需要在页面中展示…

numpy 最大值_第 85 天:NumPy 统计函数

数学统计在我们的程序当中特别是数据分析当中是必不可少的一部分&#xff0c;本文就来介绍一下 NumPy 常见的统计函数。最大值与最小值numpy.amin()用于计算数组中的元素沿指定轴的最小值。可以通过 axis 参数传入坐标轴来指定统计的轴&#xff0c;当指定 axis 时&#xff0c;a…

java中如何实现变量可配置_Java基础-如何配置环境变量

Java环境变量详细教程第一步、打开电脑环境变量设置窗口以Win10系统为例子。在桌面找到此电脑&#xff0c;右键此电脑— —>属性&#xff0c;点击属性— —>点击左侧高级系统设置点击高级系统设置点击环境变量第二步、新建JAVA_HOME点击系统变量中的新建,出现输入框&…

python三引号解析_[宜配屋]听图阁

和C语言一样&#xff0c;引号属于特殊功能字符&#xff0c;不能够像普通字符那样直接通过print打印&#xff0c;需要进行一些处理&#xff0c;比如说反斜杠转义等。这里介绍几种打印三引号的方法&#xff0c;希望对需要的朋友有用。1、第一中方法比较简单&#xff0c;直接使用三…

定时执行java程序_如何让Java程序定时运行

由于项目开发的需要&#xff0c;必须实现让一个Java程序定时运行。比如&#xff0c;我的项目中&#xff0c;有一个网络蜘蛛&#xff0c;需要从互联网上抓取数据&#xff0c;与其配合&#xff0c;有另一个程序来对新抓取的页面进行索引的创建&#xff0c;由于数据源更新频率不高…