找出数组中重复的数
/*問題描述:數(shù)組a[N],存放了1至N-1個(gè)數(shù),其中某個(gè)數(shù)重復(fù)一次。寫一個(gè)函數(shù),找出被重復(fù)的數(shù)字.時(shí)間復(fù)雜度必須為O(N),函數(shù)原型:int do_dup(int a[], int N)
*/#include <stdio.h>// 返回?cái)?shù)組中重復(fù)的數(shù)
int do_dup(int a[], int N)
{int i;int sum = 0, retValue = 0; // sum保存數(shù)組元素的總和for(i = 0; i < N; i++)sum += a[i];retValue = sum - N * (N-1) / 2;return retValue;
}int main()
{int a[] = {1, 2, 3, 3, 4, 5};int v = do_dup(a, sizeof(a) / sizeof(a[0]));printf("重復(fù)的數(shù)是:%d\n", v);return 0;
}
總結(jié)
- 上一篇: 实用小技能 | 用 Word 和 Exc
- 下一篇: bupt summer training