给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9]
思路:1.将两个数组排序
2.分别遍历两个数组,并依次比较元素的大小,若nums1中的元素大的话,则nums2中的索引加1,如果nums1中的元素小的话,则nums1中的索引加1,否则(两个元素相等),将元素存到List集合中。
public int[] intersect(int[] nums1,int[] nums2){
Arrays.sort(nums1);
Arrays.sort(nums2);
List<Integer> list=new ArrayList<>();
for(int i=0,j=0;i<nums1.length && j<nums2.length;){
if(nums1[i]<nums2[j]){
i++;
}
else if(nums1[i]>nums2[j]){
j++;
}
else{
list.add(nums1[i]);
i++;
j++;
}
}
int[] result=new int[list.size()];
for(int i=0;i<list.size();i++){
result[i]=list.get(i);
}
return result;
}