一个数组,下标从0到n,元素为从0到n的整数。判断其中是否有重复元素
今天终于看懂了这code:
int hasDuplicate(int[] a, int n){ for(int i=0;i<n;++i){ while(a[i]!=i && a[i]!=-1){ if(a[a[i]]==-1) return 1; a[i]=a[a[i]]; a[a[i]]=-1; } if(a[i]==i) {a[i]=-1;} } return 0; }
作者:一修先生
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。