一、目的
记录本题的主要目的是想让自己以及大家记住一个Java中的一个函数,可以去除数组中的后面无用的零
方法是Arrays.copyOfRange(res,0,index);
另外需要注意的是本题与两个数组的交集1中的不同便是本题需要把重复的元素列出来,而1中是不需要列举重复元素,所以1可以使用HashSet方法解答。
二、代码如下
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
Arrays.sort(nums1);
Arrays.sort(nums2);
int length1 = nums1.length;
int length2 = nums2.length;
int res[] = new int[Math.min(length1,length2)];
int index = 0,index1 = 0,index2 = 0;
while(index1 < length1 && index2 < length2)
{
if(nums1[index1] < nums2[index2])
{
index1++;
}
else if(nums1[index1] > nums2[index2])
{
index2++;
}
else
{
res[index] = nums1[index1];
index++;
index1++;
index2++;
}
}
return Arrays.copyOfRange(res,0,index);
}
}```