leetcode350. 两个数组的交集 II(hashmap)

154 阅读1分钟

给定两个数组,编写一个函数来计算它们的交集。
将长度小的数组放入hashmap,记录出现的次数,遍历另一个数组,找出交集

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {

        ArrayList<Integer> res=new ArrayList<>();
       Map<Integer,Integer> map=new HashMap<>();
        int[] tagert= nums1.length>nums2.length?nums2:nums1;
        int[] tagert2= nums1.length>nums2.length?nums1:nums2;
        for(int c:tagert) map.put(c,map.getOrDefault(c,0)+1);
        for(int c:tagert2)
            if(map.containsKey(c)&&map.get(c)>0)
            {
                res.add(c);
               map.put(c,map.get(c)-1);
            }
            int[] res2=new int[res.size()];
            for(int i=0;i<res.size();i++)
                res2[i]=res.get(i);
                return res2;
}
}