这个题并不难,只是要求时间最优比较复杂。我也写了几种方法,但是只有这一种通过测试
private int[] intersection(int[] nums1, int[] nums2) {
// TODO Auto-generated method stub
HashSet<Integer> set = new HashSet<Integer>();
for(int i : nums1) {
set.add(i);
}
HashSet<Integer> set2 = new HashSet<Integer>();
for(int j : nums2) {
if(set.contains(j)) {
set2.add(j);
}
}
/*//这一种参考了别人的,没有通过测试
Iterator<Integer> iterator = set2.iterator();
int[] ret = new int[set2.size()];
int m = 0;
while(iterator.hasNext())
{
ret[m++] = iterator.next();
}*/
Integer[] integer = set2.toArray(new Integer[]{});
int[] ret = new int[set2.size()];
int m = 0;
while(m<set2.size())
{
ret[m] = integer[m];
//System.out.println(ret[m]);
m++;
}
return ret;
}