Intersection of Two Arrays
2016-06-22 09:52
531 查看
Given two arrays, write a function to compute their intersection.
Notice
Each element in the result must be unique.
The result can be in any order.
Have you met this question in a real interview? Yes
Example
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
public int[] intersection(int[] nums1, int[] nums2) {
// Write your code here
int count = 0;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
List<Integer> reslist = new ArrayList<Integer>();
for(int num:nums1){
// if(map.containsKey(num)){
// count = map.get(num);
// count+=1;
// map.put(num, count);
// }else{
map.put(num, 1);
// }
}
for(int num:nums2){
if(map.containsKey(num)){
count = map.get(num);
count-=1;
if(count==0){
map.remove(num);
}else{
map.put(num,count);
}
reslist.add(num);
}
}
int res[] = new int[reslist.size()];
for(int i = 0;i<res.length;i++){
res[i] = reslist.get(i);
}
return res;
}
Notice
Each element in the result must be unique.
The result can be in any order.
Have you met this question in a real interview? Yes
Example
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
public int[] intersection(int[] nums1, int[] nums2) {
// Write your code here
int count = 0;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
List<Integer> reslist = new ArrayList<Integer>();
for(int num:nums1){
// if(map.containsKey(num)){
// count = map.get(num);
// count+=1;
// map.put(num, count);
// }else{
map.put(num, 1);
// }
}
for(int num:nums2){
if(map.containsKey(num)){
count = map.get(num);
count-=1;
if(count==0){
map.remove(num);
}else{
map.put(num,count);
}
reslist.add(num);
}
}
int res[] = new int[reslist.size()];
for(int i = 0;i<res.length;i++){
res[i] = reslist.get(i);
}
return res;
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树