1. 题目:
给定两个数组,编写一个函数来计算它们的交集。
示例1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]
示例2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
说明:
输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
我们可以不考虑输出结果的顺序。
2. 代码实现
public class IntersectionOfTwoArrays {
public static void main(String[] args){
Integer[] a = {1,2,3,5};
Integer[] b = {2,3,4,5};
Integer[] solution = getSolution(a, b);
System.out.println(Arrays.toString(solution));
}
public static Integer[] getSolution(Integer[] a, Integer[] b){
List<Integer> c = new ArrayList<Integer>();
Arrays.sort(a);
Arrays.sort(b);
int i = 0;
int j = 0;
while(i<a.length && j<b.length){
if(a[i]<b[j]){
i++;
}else if(a[i]>b[j]){
j++;
}else{
c.add(a[i]);
j++;
i++;
}
}
Integer[] d = c.toArray(new Integer[]{});
return d;
}
}