题目描述:
给你n个数,有一个数的出现次数超过一半,找出这个数。
输入格式:
输入两行。
第一行包含一个整数n
第二行包含n个整数ai
输出格式:
输出一行,包含一个整数。
样例输入:
51 2 2 3 2
样例输出:
2
约定:
1<=n<=1000,1<=ai<=1000000000
答案:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n, a[1010], ans=0;
cin >> n;
for (int i = 1; i <= n; i ++ )
{
cin >> a[i];
}
sort (a + 1, a + 1 + n);
for (int i = 1; i <= n; i ++)
{
if (a[i] != a[i+1])
{
if(ans >= n/2)
{
cout << a[i];
break;
}
ans = 0;
}
else
{
ans ++;
}
}
return 0;
}