美文网首页
leetcode两个数组的交集

leetcode两个数组的交集

作者: dreamintime | 来源:发表于2019-03-18 15:25 被阅读0次

题目描述

题目.png

解题思路

将nums1数组中的元素和元素出现的次数传入map集合中,元素作为集合中的键,出现的次数作为集合中的值。定义一个List集合存放两个数组共同的元素。然后,遍历nums2数组,判断元素是否出现在map集合中,在集合里就将元素传入到list中,并且将集合中元素对应出现的次数减1。接着,定义一个新的数组,将list中的元素传入到数组中,返回数组。

java源码

public int[] intersect(int[] nums1,int[] nums2){
  List<Integer> tmp=new ArrayList<>();
  Map<Integer,Integer> map=new HashMap<Integer,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;j++){
    if(map.containsKey(nums2[i])&&map.get(nums2[i])!=0){
      tmp.add(nums2[i]);
      map.put(nums2[i],map.get(nums2[i])-1);
    }
  }
  int[] result=new int[tmp.size()];
  int i=0;
  for(int num:tmp){
    results[i]=num;
    i++;
   }
  return result;
}

相关文章

网友评论

      本文标题:leetcode两个数组的交集

      本文链接:https://www.haomeiwen.com/subject/xdommqtx.html