【力扣】两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]说明:
输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。
我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii
这个问题真是搞不懂我了,我以为是连续的,没想到随便都可以,以后要注意读题啊。
解题方法1:使用hashMap的方式
public int[] intersect(int[] nums1, int[] nums2) {
if (nums1.length < nums2.length){
return intersect(nums2,nums1);
}
Map<Integer,Integer> map = new HashMap<>();
//得到数据较多的那个数组的key / value
for (int i =0 ;i< nums1.length;i++){
int temp =nums1[i];
if (map.containsKey(temp)){
map.put(temp,map.get(temp) + 1);
} else {
map.put(temp,1);
}
}
int result[] = new int[nums2.length];
int index = 0;
//循环数组,如果这个数组中有对应数据,则把有的数据放入到result中.
for (int i = 0;i< nums2.length; i++){
Integer value = map.get(nums2[i]);
if ( value != null && value > 0){
map.put(nums2[i],value-1);
result[index++] = nums2[i];
}
}
return Arrays.copyOfRange(result,0,index);
}
解答二:
public int[] intersect(int[] nums1, int[] nums2) {
//直接排序,升序
Arrays.sort(nums1);
Arrays.sort(nums2);
int index1 = 0 , index2 = 0 , index = 0;
int indexLength1 = nums1.length , indexLength2 = nums2.length;
int result[] = new int[indexLength1 > indexLength2 ? indexLength2 : indexLength1];
//通过循环的方式,把result处理了
while(index1 < indexLength1 && index2 < indexLength2){
if (nums1[index1] < nums2[index2]){
index1++;
} else if (nums1[index1] > nums2[index2]){
index2++;
}else {
result[index] = nums1[index1];
index++;
index1++;
index2++;
}
}
//注意这里包括下标from,不包括上标to
return Arrays.copyOfRange(result,0,index);
}
【力扣】两个数组的交集 II的更多相关文章
- 【Leetcode】【简单】【350. 两个数组的交集 II】【JavaScript】
题目描述 350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2] 示例 2 ...
- 6、两个数组的交集 II
6.两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: n ...
- leecode刷题(6)-- 两个数组的交集II
leecode刷题(6)-- 两个数组的交集II 两个数组的交集II 描述: 给定两个数组,编写一个函数来计算它们的交集. 示例: 输入: nums1 = [1,2,2,1], nums2 = [2, ...
- 前端与算法 leetcode 350. 两个数组的交集 II
目录 # 前端与算法 leetcode 350. 两个数组的交集 II 题目描述 概要 提示 解析 解法一:哈希表 解法二:双指针 解法三:暴力法 算法 # 前端与算法 leetcode 350. 两 ...
- Java实现 LeetCode 350 两个数组的交集 II(二)
350. 两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入 ...
- LeetCode初级算法之数组:350 两个数组的交集 II
两个数组的交集 II 题目地址:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/ 给定两个数组,编写一个函数来计算它们的交 ...
- 领扣(LeetCode)两个数组的交集II 个人题解
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5 ...
- 初级算法-6.两个数组的交集 II
题目描述: 给定两个数组,编写一个函数来计算它们的交集. 示例 : 输入: nums1 = [,,,], nums2 = [,] 输出: [,] 示例 : 输入: nums1 = [,,], nums ...
- 【leetcode 简单】 第八十五题 两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2] 示例 2: 输入: nums1 = [4,9,5 ...
随机推荐
- spring定时任务ThreadPoolTaskScheduler使用注意事项之线程池大小
背景 最近小伙伴解决了一个工单,描述为"手工推送案件无法推,提示token失效",当前工单状态为待关闭,解决方案为"东软接口不稳定造成的,东软的接口恢复正常后,问题解决& ...
- Part 23 to 26 Routing in Angular
Part 23 AngularJS routing tutorial In general, as the application becomes complex you will have more ...
- 『学了就忘』Linux软件包管理 — 40、Linux系统软件包介绍
目录 1.Linux系统软件包分类 2.源码包说明 3.二进制包说明 4.RPM包的优缺点 4.RPM包的两种安装方法 5.总结 1.Linux系统软件包分类 Linux系统下的软件包只有源码包和二进 ...
- 到底谁才需要Service Mesh?
本文是Service Mesh系列第1篇 随着云原生时代的来临,使用微服务架构的朋友们开始听到一个新的技术名词--Service Mesh(现在来说已经不算新了). 对于一项新技术的学习,总归绕不过两 ...
- 业务领先模型(Business Leadership Model; BLM)
1.什么是业务领先模型 业务领先模型是指是一个完整的战略规划方法论.这套方法论是IBM在2003年的时候,和美国某商学院一起研发的.后来,这个方法论成为IBM公司全球从公司层面到各个业务部门共同使用的 ...
- 【Git 系列】基础知识全集
Git 是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用 Git 来做自己的文档版本管理工具. 一.Git 基础 ...
- [hdu6580]Milk
考虑定义以下dp数组:1.g1[i][j]表示第i行从中间出发向左取j瓶牛奶最少要多久2.g2[i][j]表示第i行从中间出发向右取j瓶牛奶最少要多久3.g3[i][j]表示在g1[i][j]的基础上 ...
- key按键使用
1. 按键实验 查询原理图可知KEY对应的按键和引脚,当KEY按下时,引脚为低电平,否则为高电平 2. 代码 2.1 GPIO 为了方便GPIO的编写,建立GPIO的文件夹和对应的.h和.c文件. b ...
- page_fault_in_nonpaged_area异常解决方案(已解决)
电脑在运行虚拟机的时候异常重启,多次打开结果一样,问了客服告诉我导致蓝屏的原因很多,可能是驱动不兼容,系统,或其他.{没点有用的} 百度到这个方案: 打开->此电脑->右键属性->高 ...
- 互联网java面试宝典
1.为什么使用消息队列啊? 答题: 消息队列的核心功能就是:解耦合,异步,流量削峰解耦:接口调用发送,那如果E系统也要这个数据呢?那如果C系统现在不需要了呢?现在A系统又要发送第二种数据了呢?A系统负 ...