题目
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]
题解
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
TreeMap<Integer,Integer> map=new TreeMap<>();
for(int num:nums1){
if(!map.containsKey(num)){
map.put(num,1);
}else{
map.put(num,map.get(num)+1);
}
}
ArrayList<Integer> list=new ArrayList<>();
for(int num:nums2){
if(map.containsKey(num)){
list.add(num);
map.put(num,map.get(num)-1);
if(map.get(num)==0){
map.remove(num);
}
}
}
int[] res=new int[list.size()];
for(int i=0;i<list.size();i++){
res[i]=list.get(i);
}
return res;
}
}
本文介绍了如何解决LeetCode上的'两个数组的交集 II'问题,通过建立映射来高效地找出两个数组的共同元素。例如输入nums1=[1,2,2,1]和nums2=[2,2],输出为[2,2];输入nums1=[4,9,5]和nums2=[9,4,9,8,4],输出为[4,9]。"
5374073,215690,HDFS管理:启动与控制台操作详解,"['hadoop', '文件系统', '管理', 'MapReduce']
1130

被折叠的 条评论
为什么被折叠?



