//100分代码
#include<algorithm>
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;
int l,n,x,a[150]; //数据范围+-50,计数下标不能是负数,所以所有数+60就可以避免问题,输出时都减去60就可避免这个问题
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
a[x+60]++;
}
for(int i=0;i<=150;i++)
{
if(a[i]*2>n)
{
cout<<i-60;
l=1;
}
}
if(l==0)
cout<<"no";
return 0;
}
在看一下80分代码,很玄学,不知道为什么把22行换成return 0;会错俩个测试点
#include<algorithm>
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;
int s,l,n,x,a[150]; //数据范围+-50,计数下标不能是负数,所以所有数+60就可以避免问题,输出时都减去60就可避免这个问题
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
a[x+60]++;
}
for(int i=0;i<=150;i++)
{
if(a[i]>n/2)
{
cout<<i-60;
return 0;
}
}
cout<<"no";
return 0;
}