28:出现次数超过一半的数

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

给出一个含有n(0 < n <= 1000)个整数的数组,请找出其中出现次数超过一半的数。

数组中的数大于-50且小于50。

输入
第一行包含一个整数n,表示数组大小;
第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。
输出
如果存在这样的数,输出这个数;否则输出no。
样例输入
3
1 2 2
样例输出
2
来源
习题(13-6)
别忘了负数
 1 #include<iostream>
 2 using namespace std;
 3 int a[10001];
 4 int main()
 5 {
 6     int n;
 7     cin>>n;
 8     for(int i=1;i<=n;i++)
 9     {
10         int c;
11         cin>>c;
12         a[c+50]++;
13         if(n%2==1)
14         {
15             if(a[c+50]>=(n/2+1))
16             {
17                 cout<<c;
18                 return 0;
19             }
20         }
21         else
22         {
23             if(a[c+50]>(n/2))
24             {
25                 cout<<c;
26                 return 0;
27             }
28         }
29     }
30     cout<<"no";
31     return 0;
32 }

 

相关文章:

  • 2022-12-23
  • 2021-06-06
  • 2021-07-15
  • 2022-02-25
  • 2022-12-23
  • 2021-12-03
猜你喜欢
  • 2021-07-07
  • 2022-01-22
  • 2021-09-24
  • 2022-12-23
  • 2022-12-23
  • 2021-08-17
  • 2022-12-23
相关资源
相似解决方案