`
dato0123
  • 浏览: 916380 次
文章分类
社区版块
存档分类
最新评论

HDU1004 Let the Balloon Rise

 
阅读更多

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1004

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main(int argc, char *argv[])
{
int nCount=0;
string strTmp;
while(cin>>nCount&&nCount!=0)
{
map<string,int> mapColor;//用map容器非常方便
for(int i=0;i<nCount;++i)
{
cin>>strTmp;
mapColor[strTmp]++;
}
map<string, int>::iterator iter;
int max = -1;
for(iter = mapColor.begin(); iter != mapColor.end(); iter++)
{//第一次遍历标记最大次数所在位置
if(iter->second>max)
{
max = iter->second;
}
}
for(iter = mapColor.begin(); iter != mapColor.end(); iter++)
{//第二次遍历找到标记的位置
if(iter->second==max)
{
cout<<iter->first<<endl;
}
}
}
return 0;
}

由于map只能对关键字进行排序,所以这里放弃考虑排序了,直接两次遍历map容器,算法复杂度O(n)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics