美文网首页
350.(查找问题)两个数组的交集

350.(查找问题)两个数组的交集

作者: Ching_Lee | 来源:发表于2018-03-22 15:32 被阅读0次

使用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;
           
    }
}

相关文章

网友评论

      本文标题:350.(查找问题)两个数组的交集

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