HDOJ1029
题目
代码
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <string.h>
using namespace std;
const int MAX = 1e+5;
int main()
{
int N, temp, i;
while(cin>>N)
{
int arr[MAX] = {0};
int data, ans = 0;
temp = (N+1)/2;
for(i=0;i<N;i++)
{
cin>>data;
arr[data]++;
if(ans<data)
{
ans = data;
}
}
for(i=0;i<=ans;i++)
{
if(arr[i]>=temp)
{
cout<<i<<endl;
}
}
}
}
Conclusion
这道题我用的方法很简单,就是一个数组保存输入的数字出现的次数。最后遍历,输出次数大于(N+1)/ 2的那个数。