79.两个数组的交集
给定两个数组 nums1
和 nums2
,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
/*
解题思路
排序后,双指针向右遍历
*/
class Solution {
public int[] intersection(int[] a, int[] b) {
Arrays.sort(a);
Arrays.sort(b);
List<Integer> list = new ArrayList<>();
int i = 0, j = 0, m = a.length, n = b.length;
while(i < m && j < n){
if(a[i] == b[j]){
while(i+1<m && a[i+1] == a[i]) i++;
list.add(a[i++]);
}else if(a[i] < b[j]){
i++;
}else{
j++;
}
}
int[] ans = new int[list.size()];
for(int i1 = 0;i1 < list.size();i1++) ans[i1] = list.get(i1);
return ans;
}
}