查找数组内重复数字(长度为n,里面的数据的值在0-n-1之间)

1.先判断a[i]==i;等于i就跳过去,i++即可

2.若a[i]!=i,先比较a[i]和a[a[i]]是否相等,相等的话,就找到了,返回true就行。

3.若a[i]和a[a[i]]不相等,两者交换位置

代码如下:



for(int i = 0; i < n; i ++) {
    if (a[i] == i) {
        continue;
    }
    if (a[i]  == a[a[i]] ) {
        return true;
    }
    int temp = a[i];
    a[i] = a[temp];
    a[temp] = temp;

    i --;
}

 

发布了133 篇原创文章 · 获赞 111 · 访问量 45万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览