码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-02-02 21:44:28      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:class   algo   代码   元素   family   空格   mat   ring   输入   

描述

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

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

输入

第一行包含一个整数n,表示数组大小;
第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。

输出

如果存在这样的数,输出这个数;否则输出no。

样例输入

3
1 2 2

样例输出

2

来源

习题(13-6)

代码

 1 #include<cstdio>
 2 #include<string>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<cstdlib>
 7 #include<cmath>
 8 using namespace std;
 9 int a[10000],b[1000];
10 int main()
11 {
12    int n;
13    cin>>n;
14    a[0]=51;
15    for(int i=1;i<=n;i++)
16    {
17            cin>>a[i];
18            b[a[i]+50]++;//桶
19    }
20    for(int i=0;i<=101;i++)
21    if(b[i]>n/2)
22    {
23         cout<<i-50;
24         return 0;
25    }
26    cout<<"no";
27    return 0;
28 }

AC:出题人的节操掉了

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

标签:class   algo   代码   元素   family   空格   mat   ring   输入   

原文地址:http://www.cnblogs.com/InfoEoR/p/6361605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!