题目描述
输入n个大小在[ -50, 50]的数,n<=1000, 你需要找出出现次数超过一半的数,例如现在有7个数,大小分别为3,5,3,4,3,3,2, 数字3的出现次数就超过一半了。当然有可能不不存在这样的数。
输入格式
第一行一个整数n, 表示数的个数。 第二行n个整数,每个整数的大小在[-50, 50]范围内。
输出格式
输出出现次数超过一半的那个数的大小,如果不存在这样的数的话就输出“no”。
输入样例
7 3 5 3 4 3 3 2
输出样例
3
#include<bits/stdc++.h>
using namespace std;
long long n;
int main(){
cin>>n;
long long a[n],ans=INT_MIN,o=0;
for(long long i=0;i<n;i++){
cin>>a[i];
}
for(long long i=0;i<n;i++){
long long b=0;
for(long long j=0;j<n;j++){
if(a[i]==a[j])b++;
}
if(b>n/2&&b>ans){
o=a[i];
ans=b;
}
}
if(o!=0)cout<<o;
else cout<<"no";
return 0;
}
标签:输出,一半,超过,样例,50,long,次数,整数,ans
From: https://blog.csdn.net/2301_79534589/article/details/139249001