Given two arrays, write a function to compute their intersection.
Example 1:
1 2
|
Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2,2]
|
Example 2:
1 2
|
Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] Output: [4,9]
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
class { public int[] intersect(int[] nums1, int[] nums2) { List<Integer> list = new ArrayList<>(); int[] nums = null; if (nums1 == null || nums2 == null || nums1.length == 0 || nums2.length == 0) { nums = new int[0]; return nums; } Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums1.length; i++) { if (map.containsKey(nums1[i])) { Integer val = map.get(nums1[i]); map.put(nums1[i], val + 1); } else { map.put(nums1[i], 1); } } for (int i = 0; i < nums2.length; i++) { if (map.containsKey(nums2[i])) { list.add(nums2[i]); Integer val = map.get(nums2[i]); if (val - 1 <= 0) { map.remove(nums2[i]); } else { map.put(nums2[i], val - 1); } } } int size = list.size(); nums = new int[size]; for (int i = 0; i < size; i++) { nums[i] = list.get(i); } return nums; } }
|
近期评论