码迷,mamicode.com
首页 > 其他好文 > 详细

课堂练习-寻找水王

时间:2015-04-22 13:00:39      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

1.题目

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

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

2.思路

要在一个O(n)时间复杂度中实现,使用的方法是,设置计数K,设置shui=a[0]比较shui和a[i],如果这两个数不一样就跳过这个数并且K-1,如果一样就设K++,当K<0的时候就重置shui=a[i+1],结束循环后就能获得水王ID为shui

3.代码

//  #include <stdafx.h>
  #include <iostream.h>
 
  
  int main(int argc, char* argv[])
 {
     int a[100];
     int tienum; 
     int i,j,k=1;
     int shui;
     cout<<"请输入帖子总数:";
     cin>>tienum;
     cout<<endl;
     for(i=0;i<tienum;i++)
     {
         cout<<"请输入第"<<i+1<<"个帖子的ID:";
         cin>>a[i];
    }
    shui=a[0];
     for(i=1;i<tienum;i++)
     {
         if(shui!=a[i])
         {
             k=k-1;
             if(k<0)
             {
                 shui=a[i+1];
                 k=1;
                 i++;
             }
         }
         else
         {
             shui=a[i];
             k=k+1;
         }
 
     }
     cout<<"水王ID是:"<<shui<<endl;
     return 0;
 }

4.截图

技术分享

5.总结

  思路很巧妙,我自己已经想到了找出重复的ID做标记再与下一个重复的ID做比较处理,在看了别人的博客后才受启发,可以把重复的数量做计数来比较。

课堂练习-寻找水王

标签:

原文地址:http://www.cnblogs.com/boluoland/p/4446773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!