Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2, 2]
.
Note:
- Each element in the result should appear as many times as it shows in both arrays.
- The result can be in any order.
- 解题思路:双指针, 排序
1 public class Solution { 2 public int[] intersect(int[] nums1, int[] nums2) { 3 Arrays.sort(nums1); 4 Arrays.sort(nums2); 5 int i = 0, j = 0; 6 int index = 0; 7 int[] temp = new int[nums1.length]; 8 while (i < nums1.length && j < nums2.length) { 9 if (nums1[i] == nums2[j]) { 10 temp[index++] = nums1[i]; 11 ++i; 12 ++j; 13 } else if (nums1[i] < nums2[j]) { 14 i++; 15 } else { 16 j++; 17 } 18 } 19 int[] result = new int[index]; 20 for (int k = 0; k < index; k++) { 21 result[k] = temp[k]; 22 } 23 return result; 24 } 25 }
- 解题思路:双指针, 排序