zoukankan      html  css  js  c++  java
  • 课堂练习-找水王

     题目:

      

      •三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖 数目超过了帖子数目的一半。
      •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
     思想:
      由于水贴王发帖过半,所以,将帖子列表从第一个ID开始,两两相邻比较,然后将ID不同的消除,最后剩下的一定是水贴王的ID。
     程序代码:
     1 #include<iostream>
     2 using namespace std;
     3 
     4     void main(){
     5     int arr_List[10]={1,2,4,5,5,5,3,5,5,5};//模拟帖子列表,不同数字代表不同id
     6     int front=0,rear=1;       //用于比较的指针
     7 
     8     //逻辑运算函数
     9     for(int count_List=1 ; count_list<10 ; count_List++ ) {  //循环比较
    10         if(arr_List[front]!=arr_List[rear])//id不同消除,后续跳过比较
    11         {
    12             if(front==0) {                  //判断首指针位置,如果指向数组首元素,则首尾指针前移两位
    13                 rear++; front=rear; rear++;
    14             }
    15             else {                           //否则首指针前移,尾指针后移
    16                 front--; rear++;
    17             }
    18         }
    19         else{                             //id相同首尾指针均向后移动一位
    20             front=rear; front++;
    21         }
    22     }
    23 
    24     cout<<"水王ID为:"<<arr_List[front]<<endl;
    25 }

     总结:

      思路设计来源于灵感,灵感来源于实践,多锻炼编程技巧考虑开销,才能熟能生巧。

  • 相关阅读:
    linux下源码安装python3
    FTP 命令
    Linux Shell数值比较和字符串比较及相关
    mount umount sort du tar
    linux 自动检查ssh脚本
    删除linux访问记录(message删不了)
    h3c 备份脚本
    linux 批量scp 脚本
    Linux 删除几天前的文件脚本
    博达交换机镜像检查,镜像丢失自动添加脚本
  • 原文地址:https://www.cnblogs.com/bill927/p/4445328.html
Copyright © 2011-2022 走看看