在奇数个数中找到重复一半以上的数
   输入数据  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 }

posted on 2011-04-27 20:01  geeker  阅读(228)  评论(0编辑  收藏  举报