寻找水王1

水骑士设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

思路,这道题目,最终我还是用最常规的方法,构建Hash表来实现,时间复杂度为:O(n*logn),相对来说慢一点。

 1 #include<iostream>
 2 #include<map>
 3 #include<string>
 4 using namespace std;
 5 int main(){
 6     int n;
 7     map<string,int> hash;//帖子id与数目的映射关系
 8     cin>>n; //帖子的总数量
 9     string id,ans="不存在水王";
10     for(int i=0;i<n;i++){
11         cin>>id;
12         if(hash.count(id)==0){
13             hash[id]=1;
14         }else {
15             hash[id]++;
16         }
17         if(hash[id]>=n/2){
18             ans=id;
19         }
20     }
21     cout<<"水王是:"<<ans<<endl;
22     return 0;
23 } 

原文地址:https://www.cnblogs.com/yifan2016/p/5609418.html