LeetCode_350两个数组的交集II

给定两个数组,编写一个函数来计算它们的交集。
在这里插入图片描述

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
        Map<Integer,Integer> map1 = new HashMap<Integer,Integer>();
        Map<Integer,Integer> map2 = new HashMap<Integer,Integer>();
        Map<Integer,Integer> resMap = new HashMap<Integer,Integer>();
        for(int i=0;i<nums1.length;i++){
            int value = map1.getOrDefault(nums1[i],0);
            value++;
            map1.put(nums1[i],value);
        }
        for(int i=0;i<nums2.length;i++){
            int value = map2.getOrDefault(nums2[i],0);
            value++;
            map2.put(nums2[i],value);
        }
        int len = 0;
        for(int key : map1.keySet()){
            int value1 = map1.get(key);
            int value2 = map2.getOrDefault(key,0);
            if(value2>0){
                int value = Math.min(value1,value2);
                resMap.put(key,value);
                len = len+value;
            }
        }
        int[] res = new int[len];
        int index = 0;
        for(Map.Entry<Integer,Integer> mp: resMap.entrySet()){
            for(int i=0;i<mp.getValue();i++){
                res[index++] = mp.getKey();
            }
        }
        return res;
    }
}
发布了250 篇原创文章 · 获赞 0 · 访问量 1260

猜你喜欢

转载自blog.csdn.net/qq_36198826/article/details/103878916