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

2018-06-17 23:09:40来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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 }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:17:文字排版

下一篇:C++ Primer 第四版课后练习解答 习题1.6