350. 两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2,2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[4,9]
解析
排序+双指针
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
//利用排序
Arrays.sort(nums1);
Arrays.sort(nums2);
int cur1 = 0;
int cur2 = 0;
int[] res = new int[nums1.length+nums2.length];
int count = 0;
while(cur1<nums1.length && cur2<nums2.length){
if(nums1[cur1]==nums2[cur2]){
res[count++] = nums1[cur1];
cur1++;cur2++;
}else if(nums1[cur1]<nums2[cur2]){
cur1++;
}else if(nums1[cur1]>nums2[cur2]){
cur2++;
}
}
return Arrays.copyOfRange(res,0,count);
}
}
注意:本文归作者所有,未经作者允许,不得转载