日复一日

厚积薄发|跳跃的人生

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  28 随笔 :: 0 文章 :: 78 评论 :: 0 引用
一个数组,下标从0到n,元素为从0到n的整数。判断其中是否有重复元素。

 1int hasDuplicate(int[] a, int n){
 2    for(int i=0;i<n;++i){
 3        while(a[i]!=&& a[i]!=-1){
 4            if(a[a[i]]==-1return 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}
posted on 2006-06-17 08:50 GwQ 阅读(526) 评论(1) 编辑 收藏

评论

程序结果不对。而且这样把数组内容都毁掉了。
比如,『3,4,2,0,1』,并没有重复的,结果却返回1.
 回复 引用