题意:
给出n个数,zjm想找出出现至少(n+1)/2次的数, 现在需要你帮忙找出这个数是多少?(1<=n<=999999),保证N为奇数。
思路:
用map<int,int>来记录数据的个数,然后遍历找到个数最大的数,输出即可。
总结:
一道很简单的模拟题。
代码:
#include <iostream>
#include <map>
using namespace std;
int n;
map<int,int> mp;
int maxi,ans;
int main()
{
while(cin>>n)
{
mp.clear();
maxi=0,ans=0;
for(int i=0;i<n;i++)
{
int a;
cin>>a;
mp[a]++;
}
map<int,int>::iterator iter=mp.begin();
for(;iter!=mp.end();iter++)
{
if(maxi<iter->second)
{
maxi=iter->second;
ans=iter->first;
}
}
cout<<ans<<endl;
}
}