在奇数个数中找到重复一半以上的数
输入数据 1.必须全为奇数 不必考虑0 负数
2.必有一个数是重复出现一半以上的
3.数据量大 卡内存 属于大数据卡内存的题目
设一个结果变量res 并用cnt来筛选 最后的结果是能使cnt不为零的数
View Code
1 #include<stdio.h>
2 int main()
3 {
4 long n,num,cnt,res;
5 while(EOF != scanf("%d",&n))
6 {
7 cnt = 0;
8 while(n--)
9 {
10 scanf("%d",&num);
11 if(0 == cnt)
12 {
13 res = num;
14 cnt++;
15 }
16 else
17 {
18 if(res == num)
19 cnt++;
20 else
21 cnt--;
22 }
23 }
24 printf("%d\n",res);
25 }
26 return 0;
27 }