给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[4,9]
说明:
基本代码和349题一样,与349题不同的一点就是349题会去除重复的元素而这道题不需要
class Solution { public int[] intersect(int[] nums1, int[] nums2) { int[] sum = new int[nums1.length + nums2.length]; Arrays.sort(nums1); Arrays.sort(nums2); int i = 0; int j = 0; int k = 0; while(i != nums1.length && j != nums2.length){ if(nums1[i] == nums2[j] ){ //if(k == 0 || sum[k - 1] != nums1[i]) 注释掉这个if就行了{ sum[k++] = nums1[i]; //} i++; j++; } else if(nums1[i] < nums2[j]){ i++; } else{ j++; } } return Arrays.copyOfRange(sum, 0, k); } }