问题描述:求两个整数数组的交集;(一个月不刷Leetcode,现在已经沦落到只会简单题的地步)
public class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
if(nums1.length>nums2.length){
return intersection(nums2,nums1);
}
if(nums1.length==0){
return new int[0];
}
ArrayList<Integer> result = new ArrayList<>(nums1.length);
Arrays.sort(nums1);
Arrays.sort(nums2);
int last=nums1[0];
int index = 0;
for (int i = 0; i < nums1.length; i++) {
while(index<nums2.length&&nums2[index]<nums1[i]) index++;
if(index==nums2.length){
break;
}
if(nums2[index]==nums1[i]){
if(nums1[i]!=last||i==0){
result.add(nums1[i]);
last = nums1[i];
}
}
}
int[] ra = new int[result.size()];
for (int i = 0; i < ra.length; i++) {
ra[i] = result.get(i);
}
return ra;
}
}