Intersection of Two Arrays | & ||
2016-06-30 12:50
274 查看
Intersection of Two Arrays
Given two arrays, write a function to compute their intersection.Example
Given nums1 =
[1, 2, 2, 1], nums2 =
[2, 2], return
[2].
分析:
这种考察一个数是否存在另一个集合中,一般来讲,都会用到HashSet. 如果不允许用额外的存储空间,可以对nums1排序,然后使用二分查找。
public class Solution { /** * @param nums1 an integer array * @param nums2 an integer array * @return an integer array */ public int[] intersection(int[] nums1, int[] nums2) { if (nums1 == null || nums2 == null || nums1.length == 0 || nums2.length == 0) { int[] arr = new int[0]; return arr; } Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i : nums1) { if (map.containsKey(i)) { map.put(i, map.get(i) + 1); } else { map.put(i, 1); } } ArrayList<Integer> list = new ArrayList<Integer>(); for (int i : nums2) { if (map.containsKey(i) && map.get(i) >= 1) { list.add(i); map.put(i, map.get(i) - 1); } } return convertIntegers(list); } public int[] convertIntegers(List<Integer> integers) { int[] ret = new int[integers.size()]; Iterator<Integer> iterator = integers.iterator(); for (int i = 0; i < ret.length; i++) { ret[i] = iterator.next().intValue(); } return ret; } }
View Code
转载请注明出处:cnblogs.com/beiyeqingteng/
相关文章推荐
- java封装
- pushScene,popScene和runScene的区别
- Android实训案例(五)——四大组件之一ContentProvider的使用,通讯录的实现
- C++中的类的学习总结
- 【51CTO学院三周年】我在学院不得不说的收获
- 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)代码中的实现
- Jade模板引擎学习(二)语法:代码、变量、循环、过滤器及mixin
- Dmgr管理控制台访问IBM HTTP Administration 服务器时,认证失败
- 一天一条Linux指令-find
- ImageFilter 开源图像滤镜类库的使用
- IDEA JRebel热部署插件免费使用方法
- 56种语言编写一个Lisp解释器
- Android实训案例(四)——关于Game,2048方块的设计,逻辑,实现,编写,加上色彩,分数等深度剖析开发过程!
- 自定义dialog
- 课程练习四-ProblemH
- 机器学习实战读书笔记(序)
- python知识(3)----正则表达式
- 图算法—Problem E
- 八 Appium常用方法介绍
- 对ElasticSearch读写操作的封装