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…

oracle 空闲连接数_oracle数据库空闲连接

RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available在使用rman duplicate复制standby数据库的时候&#xff0c;由于standby数据库实例必须处于非mount状态&#xff0c;所以主数据库直接连接是会报错的&#xff0c;需要在standby数据库服务上的监听器…

配置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…

python 个人所得税问题_Python实现的个人所得税计算器

这篇文章主要介绍了Python实现的个人所得税计算器,涉及Python条件判断与数值运算相关操作技巧,需要的朋友可以参考下本文实例讲述了Python实现的个人所得税计算器。分享给大家供大家参考&#xff0c;具体如下&#xff1a;# -*- coding: utf-8 -*-"""Created on …

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

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

有效字符区域 获取textview_Android编程开发之TextView文字显示和修改方法(附TextView属性介绍)...

本文实例讲述了Android编程开发之TextView文字显示和修改方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;一. 新建一个Activity 和 Layout首先在layout文件夹中新建一个activity_main.xml,在新建工程的时候一般默认会新建此xml文件,修改其代码如下:activity_main.…

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

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

vue怎么vw布局好用_vue cli3项目的pc自适应布局_vw

前言vw布局的页面是等比改变的,比如我们在一个750px的屏幕宽度中使用了vw,当我们把屏幕宽度改为1920的时候,网页的整个样式包括字体都会等比放大.vw布局我用于大屏监控数据展示.下图是750屏幕宽度下的页面下图是1920屏幕宽度下的页面pc端配置1.安装postcss-px-to-viewport插件,…

python做得怎么变成exe_Python如何生成exe文件?

背景图来源&#xff1a;click斗鱼直播间真实rtmp地址获取(含工具类下载)​zhuanlan.zhihu.com最经典的Python爬虫(图片)案例​zhuanlan.zhihu.com写在前面&#xff1a;之前用python生成过可执行的exe文件(斗鱼推流地址exe &#xff0c;图片exe&#xff0c;芳儿小团子千人成像ex…

python mkl freebsd_freebsd下之简单安装python

先su到root帐户进入/usr/ports/lang/python26然后直接make整个过程如图所示&#xff0c;经过漫长的编译之后...然后make install又是漫长的等待...出现Install them as needed.--------------------------------------------------------This package was built with the exper…

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年省、市、区课题开题报告会。本次开题报告会邀…

vsftp日志查看_vsftp日志xferlog格式分析(示例代码)

1、开始vsftp记录日志。修改/etc/vsftpd/vsftpd.conf 如下&#xff1a;xferlog_enableYESxferlog_std_formatYESxferlog_file/var/log/xferlogFTP服务器的日志设置&#xff0c;可以通过修改主配置文件/etc/vsftpd.conf实现。主配置文件中与日志设置有关的选项包括xferlog_enabl…

安装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 r_R之RMySQL

linux&#xff0c;mysql和R的版本信息&#xff1a;Linux naci 3.19.0-16-generic #16-Ubuntu SMPServer version: 5.6.24-0ubuntu2 (Ubuntu)R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet"mysql的linux安装&#xff0c;参照上一篇关于liunx下安装mysql的文章。1.…

mysql 字符转换函数是_MySQL日期和字符串转换函数

Mysql中to_char()和str_to_date()函数转载路径&#xff1a;https://blog.csdn.net/ricardo_mli/article/details/802175121.字符串转换成日期格式str_to_date(date,’%Y-%m-%d’)----->相当于Oracle中的to_char();例子&#xff1a;INSERT INTOt_order(order_time)VALUES(str…