一个数组,下标从0到n,元素为从0到n的整数。判断其中是否有重复元素。
1
int hasDuplicate(int[] a, int n){
2
for(int i=0;i<n;++i){
3
while(a[i]!=i && a[i]!=-1){
4
if(a[a[i]]==-1) return 1;
5
a[i]=a[a[i]];
6
a[a[i]]=-1;
7
}
8
if(a[i]==i) {a[i]=-1;}
9
}
10
return 0;
11
}
int hasDuplicate(int[] a, int n){2
for(int i=0;i<n;++i){3
while(a[i]!=i && a[i]!=-1){4
if(a[a[i]]==-1) return 1;5
a[i]=a[a[i]];6
a[a[i]]=-1;7
}8
if(a[i]==i) {a[i]=-1;}9
}10
return 0;11
}



浙公网安备 33010602011771号