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

    题目:

    随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

    设计思想:

        通过对帖子列表进行遍历,统计水王帖子的数目是最简单的一种查找水王的方式,但是这种算法时间复杂度比较高。但是目前我只想到了这种有点low方法,老师上课讲的没太听明白。

    程序概要设计:

        我的程序中首先假设列表中有40用户ID,逐个遍历,程序详细设计见源代码。

    源代码如下:

    
    

    //2016.5.27 王硕 20133099 找水王02
    #include <iostream>
    using namespace std;

    
    

    void main()
    {
     int i;
     int j=0;
     int count;
     int firstking=0;  
     int secondking=0;
     int thirdking=0;

    
    

     /*cout<<"三个小水王分别是: ";
     cout<<firstking<<"   "<<secondking<<"   "<<thirdking<<endl;
     cout<<endl;*/

    
    

     int news[40]={1,3,1,2,2,1,3,2,1,5,3,1,2,7,2,3,3,4,5,1,2,6,3,1,2,4,3,2,1,3,3,2,1,2,1,4,3,3,1,2};
     cout<<"帖子列表:"<<endl;
     for(i=0;i<40;i++)
     {
      cout<<news[i]<<"   ";
      if(i%8==7)
      {
       cout<<endl;
      }
     }
     cout<<endl;
     cout<<"找出的小水王:"<<endl;

    
    

     for(i=0;i<40;i++)
     {
      count=0;
      for(j=0;j<=40;j++)
      {
       if(news[i]==news[j])
       {
        count=count+1;
       }
      }
      if(count>=11)
      { 
       if(firstking==0)
       {
        firstking=news[i];
       }
       if(news[i] != firstking && secondking ==0)
       {
        secondking=news[i];
       }
       if(news[i] != firstking && news[i] != secondking)
       {
        thirdking=news[i];
        break;
       }
      } 
     }

    
    

     cout<<firstking<<"   "<<secondking<<"   "<<thirdking<<endl;
     cout<<endl;
    }

    
    

     实验结果:

  • 相关阅读:
    「UVA12293」 Box Game
    「CF803C」 Maximal GCD
    「CF525D」Arthur and Walls
    「CF442C」 Artem and Array
    LeetCode lcci 16.03 交点
    LeetCode 1305 两棵二叉搜索树中的所有元素
    LeetCode 1040 移动石子直到连续 II
    LeetCode 664 奇怪的打印机
    iOS UIPageViewController系统方法崩溃修复
    LeetCode 334 递增的三元子序列
  • 原文地址:https://www.cnblogs.com/WS1004/p/5535306.html
Copyright © 2011-2022 走看看