LeetCode-350. Intersection of Two Arrays II (Java)
来源:互联网 发布:it编程培训中心 编辑:程序博客网 时间:2024/06/03 17:29
Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2, 2]
.
Note:
- Each element in the result should appear as many times as it shows in both arrays.
- The result can be in any order.
--------------------------------------------------------------------------------------------------------
代码
public class Solution { public int[] intersect(int[] nums1, int[] nums2) { HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); ArrayList<Integer> result = new ArrayList<Integer>(); for(int i = 0; i < nums1.length; i++) { if(map.containsKey(nums1[i])) map.put(nums1[i], map.get(nums1[i])+1); else map.put(nums1[i], 1); } for(int i = 0; i < nums2.length; i++) { if(map.containsKey(nums2[i]) && map.get(nums2[i]) > 0) { result.add(nums2[i]); map.put(nums2[i], map.get(nums2[i])-1); } } int[] r = new int[result.size()]; for(int i = 0; i < result.size(); i++) { r[i] = result.get(i); } return r; }}
还有一种方法,在求重合时比较常用
public class Solution { public int[] intersect(int[] nums1, int[] nums2) { Arrays.sort(nums1); Arrays.sort(nums2); int pnt1 = 0; int pnt2 = 0; ArrayList<Integer> myList = new ArrayList<Integer>(); while((pnt1 < nums1.length) && (pnt2 < nums2.length)){ if(nums1[pnt1] < nums2[pnt2]) pnt1++; else if(nums1[pnt1] > nums2[pnt2]) pnt2++; else { myList.add(nums1[pnt1]); pnt1++; pnt2++; } } int len = myList.size(); int[] res = new int[len]; for(int i = 0; i < len; i++){ res[i] = myList.get(i); } return res; }}
使用while循环,然后对两个数组的索引进行操作,但是前提是这两个数组要是有序的。
阅读全文
0 0
- [LeetCode]Intersection of Two Arrays II(Java)
- LeetCode 350. Intersection of Two Arrays II
- leetcode.350. Intersection of Two Arrays II
- [leetcode] 350. Intersection of Two Arrays II
- Leetcode 350. Intersection of Two Arrays II
- leetcode 350. Intersection of Two Arrays II
- Leetcode 350. Intersection of Two Arrays II
- [leetcode] 350. Intersection of Two Arrays II
- leetcode 350. Intersection of Two Arrays II
- 【leetcode】350. Intersection of Two Arrays II
- [Leetcode] 350. Intersection of Two Arrays II
- 【leetcode】350. Intersection of Two Arrays II
- LeetCode 350. Intersection of Two Arrays II
- LeetCode - 350. Intersection of Two Arrays II
- LeetCode 350. Intersection of Two Arrays II
- leetcode 350. Intersection of Two Arrays II
- leetcode-350. Intersection of Two Arrays II
- leetcode 350. Intersection of Two Arrays II
- centos7 防火墙
- 如何向妻子解释OOD
- 联合体(union)的使用方法及其本质
- selenium 自动化测试
- 在VC++应用程序中获取其他程序图标的实现方法
- LeetCode-350. Intersection of Two Arrays II (Java)
- Android Butter Knife 框架——最好用的View注入
- Linux下正则表达式的使用及grep工具
- 关于linux下的openmp编程基础
- 提取anr的traces.txt文件
- Solr5.5.4在linux centOS(6.8)下的安装
- 运行React Native到Android真机上的流程
- Java虚拟机系列(二)
- 连上VPN仍然不能访问Google