350. Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection.

题目含义z:计算两个数组的交集,重复的数字要保留

 1     public int[] intersect(int[] nums1, int[] nums2) {
 2         if (nums1.length == 0 || nums2.length == 0) return new int[0];
 3         Map<Integer, Integer> numberMap = new HashMap<>();
 4         for (int i = 0; i < nums1.length; i++)
 5             numberMap.put(nums1[i], numberMap.getOrDefault(nums1[i], 0) + 1);
 6         List<Integer> resultList = new ArrayList<Integer>();
 7         for (int i = 0; i < nums2.length; i++) {
 8             if (numberMap.containsKey(nums2[i]) && numberMap.get(nums2[i]) > 0) {
 9                 resultList.add(nums2[i]);
10                 numberMap.put(nums2[i], numberMap.get(nums2[i]) - 1);
11             }
12         }
13         int[] result = new int[resultList.size()];
14         for (int i = 0; i < result.length; i++) result[i] = resultList.get(i);
15         return result;        
16     }

 

posted @ 2017-10-23 13:55  daniel456  阅读(116)  评论(0编辑  收藏  举报