L350 两个数组的交集 ii leetcode
class Solution {public int[] intersect(int[] nums1, int[] nums2) {int len1=nums1.length;int len2=nums2.length;if(len1>len2){return comp(nums1,nums2);}else{return comp(nums2,nums1);}}public int[] comp(int[] arr_big,int[] arr_small){ArrayList<Integer> al=new ArrayList<Integer>();for(int i=0;i<arr_small.length;i++){for(int j=0;j<arr_big.length;j++){if(arr_small[i]==arr_big[j]){al.add(arr_small[i]);break;}}}int[] result=new int[al.size()];for(int i=al.size()-1;i>=0;i--){result[i]=al.get(i);}return result;}
}
class Solution {public int[] intersect(int[] nums1, int[] nums2) {if(nums1.length==0||nums2.length==0){int[] nu={};return nu;}Arrays.sort(nums1);Arrays.sort(nums2);ArrayList<Integer> ls=new ArrayList<Integer>();int index1=0;int index2=0;while(true){if((index1>=nums1.length)||(index2>=nums2.length)){break;}if(nums1[index1]==nums2[index2]){ls.add(nums1[index1]);index1++;index2++;}else if(nums1[index1]<nums2[index2]){index1++;}else{index2++;}}int size=ls.size();int[] result=new int[size];for(int i=0;i<size;i++){result[i]=ls.get(i);}return result;}
}
用另一个数组扫描,有的话就加入结果中,并且把次数减一。
class Solution {public int[] intersect(int[] nums1, int[] nums2) {HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();for(int i=0;i<nums1.length;i++){//注意,一定要用Integer,因为对象才有null,int是没有null的Integer value=map.get(nums1[i]);map.put(nums1[i],(value==null?1:value+1));}ArrayList<Integer> al=new ArrayList<Integer>();for(int i=0;i<nums2.length;i++){//这里可能有一个问题,就是map.get(nums2[i])有可能是null(数组为空),有可能是0,但是null!=0这个判断是有问题的。所以,//要不然就从一开始排除空数组情况,要不然就map.containsKey(nums2[i])把这个放在前面,短路&&后面的//的表达式if(map.containsKey(nums2[i])&&map.get(nums2[i])!=0){if(map.get(nums2[i])!=0){ al.add(nums2[i]);map.put(nums2[i],map.get(nums2[i])-1);}}} int size=al.size();int[] result = new int[size];for(int i=0;i<size;i++){result[i]=al.get(i);}return result;}
}
L350 两个数组的交集 ii leetcode相关推荐
- LeetCode算法题350:两个数组的交集II(Intersection of Two Arrays II)
技术交流可以加: 本人微信:xcg852390212 本人qq:852390212 学习交流qq群1(已满): 962535112 学习交流qq群2: 780902027 两个数组的交集II Leet ...
- L349. L350两个数组的交集
两个数组的交集 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 示例 2: 输入: nums1 = ...
- leetcode初级算法4.两个数组的交集 II
leetcode初级算法4.两个数组的交集 II 仅为个人刷题记录,不提供解题思路 题解与收获 我的解法:(总结在代码中) public int[] intersect(int[] nums1, in ...
- 两个对象数组交集_yiduobo的每日leetcode 349.两个数组的交集 amp;amp; 350.两个数组的交集II...
祖传的手艺不想丢了,所以按顺序写一个leetcode的题解.计划每日两题,争取不卡题吧 349.两个数组的交集https://leetcode-cn.com/problems/intersection ...
- leetcode系列-350.两个数组的交集II
leetcode系列–第350题.两个数组的交集II 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集. 返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一 ...
- LeetCode 350. 两个数组的交集 II
350. 两个数组的交集 II 难度简单640收藏分享切换为英文接收动态反馈 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集.返回结果中每个元素出现的次数,应与元素在两 ...
- 两个数组的交集 II
两个数组的交集 II 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 ...
- LeetCode 350. 两个数组的交集 II ntersection of Two Arrays II
Table of Contents 一.中文版 二.英文版 三.My answer 四.解题报告 一.中文版 给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2 ...
- Leetcode 350. 两个数组的交集 II 解题思路及C++实现
解题思路: 和349. 两个数组的交集 这道题目很相似,这道题只是在返回的数组中,多了重复的数字,其实相较于349题,350题更简单. 先对两个数组进行排序,然后遍历这两个数组,找到相同的数字之后,就 ...
最新文章
- matlab练习程序(简单图像融合)
- matlab z变换离散化_MATLAB作图从入门到熟练
- Hive_ 对比分区,分桶
- 模块化妙用!用vue3实现一个鼠标追踪器和异步加载组件
- 基于Maven的SSH框架搭建
- Extjs4前端开发代码规范参考
- jeecg-framework 采用eclipse-maven运行
- Kostya the Sculptor
- 华为机试HJ1:字符串最后一个单词的长度
- oracle 分页过程,oracle存储过程分页的完整例子
- Linux不同发型版本(Debian REHL)与软件包管理器(RPM dpkg)的概念
- numeric比较大小 数据库_Liquibase 数据库版本管理工具:3. changeSet 变更集详解
- BigData | 一文带你搞清楚“数据倾斜”
- 祝威廉 :Rust FFI 实践
- MySQL · myrocks · 事务锁分析
- MyBatis(四)------MyBatis的生命周期及配置实例
- 如何完全的卸载MySQL数据库?
- 浮动QQ在线客服代码,兼容各大浏览器
- 数学建模多元分析实例
- Server 2016 + Win10 搭建CA证书登录环境