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);}
}
执行结果:
php 两个数组 交集_两个数组的交集相关推荐
- c语言讲两个数组合并_两列数据相互去掉重复值后合并
大家好,今日继续讲VBA数组与字典解决方案的第27讲,内容是两列数据中相互去掉重复值之后将数据合并.这讲的内容利用到动态数组,固定数组,数组的合并,数组的转置等等. 还是先看实例,下面的工作表中A列和 ...
- php多维数组合并_两种PHP二维数组合并的方式
本文主要和大家分享第一种合并方式:通过PHP的数组API给出的array_merge方法来合并一个数组 ,希望能帮助到大家. 代码:$a = array(array("1",&qu ...
- java 数组 内存_图解Java数组的内存分配
1. Java数组是静态的 Java是静态语言,所以Java的数组也是静态的,即:数组被初始化后,长度不可变 静态初始化:显式指定每个数组元素的初始值,系统决定数组长度 String[] books ...
- access vba 常量数组赋值_聊聊 VBA 数组的那些坑
为什么使用数组? 1. 缩减工作薄文件大小,提高运行效率 一般而言只是使用 Excel 的内置工作表函数,在运算方面还是很高效的,但有时因为一个单元格牵扯的计算太多,比如调用多单元格数据,对结果文本进 ...
- 数组超过预设的最大数组大小_工作表数组大小的扩展及意义
朋友们好,今日给大家继续讲解VBA数组与字典解决方案的第17讲,数组大小的扩充问题.这一讲的内容相对比较简单,在之前的章节中讲了数组与数组的计算规律,也是利用了数组的扩展原理. 其实,两个数组计算时, ...
- Matlab数组操作_实现三维数组的写入与读取
Matlab数组操作 三维数组的写入 将多个二维数组写入三维数组中 %原始二维数组 a1=[0.25 0.25 0.25 0.25 0.23;0.25 0.25 0.11 0.27 0.27;0.25 ...
- php 输出数组内容_关于打印数组的10种方法详解
假设有一个数组:<?php $arr=["PHP","中文","网"]; echo $arr; ?>请问上面的代码会输出什么?上 ...
- 将两个数组河滨_两名3岁男孩在河滨公园玩耍迷了路 幸亏被好心人“捡”到
民警安抚孩子 多彩贵州网讯(本网记者 徐昆)"你好,民警同志,我在河滨公园见到两个小孩."10月27日下午,南明区网格民警田雨风接到报警称,在贵阳市河滨公园,一名热心市民" ...
- html两个框架同时_两个框架的故事
html两个框架同时 If you're like me you have a favourite framework you gravitate towards in every project. ...
最新文章
- Realm数据库拾遗
- 大尺寸3D打印机:不再是“围城”!工业级3D打印的瞬发时代已来!
- com口驱动_Ubuntu 安装Nvidia显卡驱动指南
- 计算机服务哪些不能关闭,Win7系统下哪些系统服务不能关闭
- JAVA中对象的序列化的作用?
- mysql查询默认排序规则_深究 mysql 默认排序, order by 的顺序【收藏】
- SpringBoot中拦截器
- php 基础入门篇之前言
- 树——二叉树的深层特性
- 动态得到查询结果后绑定
- ubuntu开机自启动python程序
- 有关E45: ‘readonly‘ option is set (add!to override)错误的解决方法
- 途胜怎样与android手机互联,现代途胜车载蓝牙怎么连接,途胜手机互联映射教程...
- sfgghshs测试测试
- 四川麻将胡牌判定(Python、C#、C++)
- NowCoder--Protoss and Zerg
- [presto(trino)]多种日期写法
- http基本请求头详解
- 石墨烯/SiO2复合气凝胶微球/包覆二氧化硅纳米颗粒/载Pt石墨烯中空二氧化硅微球
- find the longest of the shortest
热门文章
- Pivotal冯雷:以数字化为核心竞争力的时代 自主可控是企业的“必然选择”
- Elastic Jeff Yoshimura:开源正在开启新一轮的创新 | 人物志
- 架构日趋复杂的今天,如何重构数据库和应用边界?
- 账户配置阻止使用计算机.怎样开机,开机自启动设置怎么操作 开机自启动设置如何禁止【图文介绍】...
- class传参 python_Python 初学者必备的常用内置函数
- mysql 与 redis 如何保证数据一致性问题 ?
- 企业微信H5_消息推送接收消息回调配置、内网穿透到本地
- 解决idea修改html、js、css后,浏览器不能同步加载
- CentOS7 最小化安装后的必备操作
- 前后端分离,如何解决跨域(代理模式)、路由拦截(进入页面需要登录)以及请求拦截(登录TOKEN失效)等问题(初学者)