使用map,因为需要记录次数
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
Map<Integer,Integer> map=new HashMap<Integer,Integer>();
List<Integer> resList=new ArrayList<Integer>();
//把nums1的值放到map中
for(int i=0;i<nums1.length;i++){
if(!map.containsKey(nums1[i]))
map.put(nums1[i],1);
else
{
map.put(nums1[i],map.get(nums1[i])+1);
}
}
//nums2
for(int i=0;i<nums2.length;i++){
//判断nums1中如果包括nums2[i]
if(map.containsKey(nums2[i])){
//在结果列表中添加nums2[i]
resList.add(nums2[i]);
//让map的value值减1
map.put(nums2[i],map.get(nums2[i])-1);
//如果map的value值为0,就移除该元素
if(map.get(nums2[i])==0)
map.remove(nums2[i]);
}
}
int[] res=new int[resList.size()];
for(int i=0;i<res.length;i++)
res[i]=resList.get(i);
return res;
}
}
网友评论