查找数组中重复的数

来源:互联网 发布:笨女孩知乎 编辑:程序博客网 时间:2024/04/29 03:55

一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间复杂度和O(n)时间复杂度。 

思路:本题跟前面的“数组中缺少的数”文章的思路一样,利用了数值范围为[0, n-1]这个属性。

int fun(int a[], int n){    for(int i = 0; i < n; i++){a[a[i]%n] += n;}int label = 2*n;for (int i = 0; i < n; i++){if (a[i] >= label){return i;}}return -1;}


0 0
原创粉丝点击