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

    一、题目要求

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

    二、设计思路

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

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

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

    三、程序代码

     1  #include<iostream.h>
     2 int main()
     3 {
     4  int num[1000];
     5  int i,n;
     6  
     7  int count=1;
     8  cout<<"输入ID个数:";
     9  cin>>n;
    10  cout<<"输入ID:";
    11  for(i=0;i<n;i++)
    12  {
    13   cin>>num[i];
    14   //cout<<num[i];
    15   
    16  }
    17  cout<<endl;
    18  int a=num[0];
    19  for(i=0;i<n;i++)
    20  {
    21   if(num[i]==a)
    22   {
    23    count++;
    24    
    25   }
    26   else 
    27   {
    28    count--;
    29   }
    30   if(cout==0)
    31   {
    32    a=num[i];
    33    count=1;
    34   }
    35   
    36  }
    37  cout<<"水王的ID:"<<a<<endl;
    38  return 0;
    39 }

    四、结果截图

    五、总结

      在对一个事件进行处理时,我们都会对他先进行我们最容易想到的办法来处理,但是最容易想到的办法不一定就是最适合的办法,我们在想出办法以后,要对问题进行分析,试图找出更适合的办法,这样我们才能进步,才能有所突破,而不应该只为解决问题而解决问题。

        

  • 相关阅读:
    2018年蓝桥杯java b组第五题
    2018年蓝桥杯java b组第四题
    2018年蓝桥杯java b组第三题
    2018年蓝桥杯java b组第二题
    2018年蓝桥杯ava b组第一题
    java算法基础范例
    2015年蓝桥杯java b组第十题
    第六届蓝桥杯java b组第8题
    MySQL之数据表(五)
    MySQL数据类型(四)
  • 原文地址:https://www.cnblogs.com/cuipengbo/p/4585149.html
Copyright © 2011-2022 走看看