我在想,除了
输出:[1,4,3,7]
O(n^2)
,是否有更简单的解决方案来打印两个数组中的唯一项。你有什么想法吗? int[] a = {1,2,4,5,8};
int[] b = {3,2,5,7,8};
ArrayList unMatch = new ArrayList() ;
for(int i=0; i<a.length; i++){
boolean contains = false;
innerloop:
for(int k =0; k<b.length; k++){
if(a[i]==b[k]){
contains = true;
break innerloop;
}
}
if(!contains){
unMatch.add(a[i]);
}
}
for(int i=0; i<b.length; i++){
boolean contains = false;
innerloop:
for(int k =0; k<a.length; k++){
if(b[i]==a[k]){
contains = true;
break innerloop;
}
}
if(!contains){
unMatch.add(b[i]);
}
}
输出:[1,4,3,7]
O(n log n)
的时间复杂度完成它。 - Andy TurnerO(n+m)
*,因为无论如何你都必须遍历两个数组中的项。 - Idos