Intersection of Two Arrays II
给两个数组, 找出相同元素, 数组的元素可能有重复, 返回的数组也可能有重复.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class Solution { public int[] intersect(int[] nums1, int[] nums2) { Map<Integer, Integer> map = new HashMap<>(); for(int n : nums1) { map.put(n, map.getOrDefault(n,0)+1); } List<Integer> res = new ArrayList<>(); for(int n : nums2) { if(map.containsKey(n)) { if(map.get(n) > 0) { map.put(n, map.get(n) - 1); res.add(n); } } } int[] ary = new int[res.size()]; for(int i = 0 ; i < res.size(); i++) { ary[i] = res.get(i); } return ary; } } |