测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25177. 出现次数超过一半的数

填空题 中等

题目描述

出现次数超过一半的数

题目描述

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

输入

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

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

输出

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

输入样例

3
1 2 2

输出样例

2

参考答案

#include <bits/stdc++.h> using namespace std; int main() { int ct[105] = {}, n, a;//ct[i+50] = j 表明数字i有j个 cin >> n; for(int i = 1; i <= n; ++i) { cin >> a; ct[a+50]++; } for(int i = -50; i <= 50; ++i) { if(ct[i+50] > n/2) { cout << i; return 0; } } cout << "no"; return 0; }
上一题 下一题