congr / world

2 stars 1 forks source link

LeetCode : 350. Intersection of Two Arrays II #521

Closed congr closed 5 years ago

congr commented 5 years ago

https://leetcode.com/problems/intersection-of-two-arrays-ii/ image

congr commented 5 years ago

O(M+N)

class Solution {
    public int[] intersect(int[] nums1, int[] nums2) {
        Map<Integer, Integer> map = new HashMap();
        for (int n : nums1) 
            map.merge(n, 1, Integer::sum);

        List<Integer> list = new ArrayList();
        for (int n : nums2) {
            if (map.merge(n, -1, Integer::sum) >= 0) list.add(n);
        }

        int i = 0;
        int[] res = new int[list.size()];
        for (int n : list) res[i++] = n;
        return res;
    }
}