zoukankan      html  css  js  c++  java
  • 找水王

    一、题目要求

          三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
          如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    二、设计思路

         (1)、我首先想到的是将帖子的ID都统计一下,然后在比较,最大的就会是水王的帖子,但是我的方法空间复杂度较高,便换了一种方法。

         (2)、我看到帖子超过一般了,那将帖子的ID排序,那中间的必定是水王的ID,通过这种方法的时间复杂度O(n*n)。

         (3)、还有一种更为简单额一种思路,就是消消乐思想:既然水王的帖子为一半以上,那么将相邻的帖子删掉剩下的必定为水王的帖子,这中方法优化度最高。

    三、程序代码

      #include<iostream.h>
    int main()
    {
     int num[1000];
     int i,n;
     
     int count=1;
     cout<<"输入ID个数:";
     cin>>n;
     cout<<"输入ID:";
     for(i=0;i<n;i++)
     {
      cin>>num[i];
      //cout<<num[i];
      
     }
     cout<<endl;
     int a=num[0];
     for(i=0;i<n;i++)
     {
      if(num[i]==a)
      {
       count++;
       
      }
      else
      {
       count--;
      }
      if(cout==0)
      {
       a=num[i];
       count=1;
      }
      
     }
     cout<<"水王的ID:"<<a<<endl;
     return 0;
    }

    四、结果截图

    五、最后总结

        对我们生活最有力的是习惯,对我们生活最有害的也是习惯,习惯往往支配这我们的生活。在编写程序的时候也是这样,习惯常常充斥这我们的程序中心,他能够让我们更加有条理的,更加规格化的进行命名,编写结构,方便和别人进行交流,但是惯性思维也禁锢了我们思想,想一件事的时候往往按照我们已有的模版去思考,这样会让我们陷入死胡同。

  • 相关阅读:
    有关C#中List排序的总结
    配置jdk1.8.0_77
    New Day
    HDU 4288 Coder 线段树
    AOJ 169 找零钱 DP OR 母函数
    HDU 3954 Level up 线段树
    HDU 3016 Man Down 线段树+简单DP
    HDU 4027 Can you answer these queries? 线段树
    HDU 3333 Turing Tree 树状数组 离线查询
    POJ 2464 Brownie Points II 树状数组+扫描线
  • 原文地址:https://www.cnblogs.com/bmbcbyc/p/4446300.html
Copyright © 2011-2022 走看看