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

Posted jzxnl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1186:出现次数超过一半的数相关的知识,希望对你有一定的参考价值。

传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1186

 

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


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 5616     通过数: 2614

【题目描述】

给出一个含有n(0 < n ≤ 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。

【输入】

第一行包含一个整数n,表示数组大小;

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

 

【输出】

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

【输入样例】

3
1 2 2

【输出样例】

2

#include<iostream>
using namespace std;
#define N 310
int n,a[N],ci;
bool ans=false;
int main()
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>ci;
        a[ci+100]++;
    
    for(int i=1;i<N;i++)
    
        if(a[i]>(n/2))cout<<i-100<<endl,ans=true;
    
    if(!ans)cout<<"no\n";

 

以上是关于1186:出现次数超过一半的数的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer系列54---数组中出现次数超过一半的数

数组中出现次数超过一半的数

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

剑指Offer 39 - 数组中出现次数超过一半的数

c++题目:求出现次数超过一半的数

算法笔记_131:出现次数超过一半的数(Java)