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


    一、题目要求

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

    二、设计思想

        删掉相邻的不同的ID,由于“水王”发帖数目超过了帖子数目的一半,这样剩下的ID一定是水王的ID

    三、代码实现

     1 #include<iostream.h> 
    2
    void main()
    3
    {
    4
    int arr[10]={3,3,6,4,3,5,3,3,7,3};//假设的ID号
    5
    int shuiwang = 0;
    6
    int count=0; //标记
    7 cout<<"假设有10个ID,分别为:";
    8
    for(int i=0;i<10;i++)
    9
    {
    10 cout<<arr[i]<<" ";
    11 if(count == 0)
    12
    {
    13
    shuiwang = arr[i];
    14
    count = 1;
    15
    }
    16
    else
    17 {
    18
    if(shuiwang == arr[i])
    19 count ++;
    20 else
    21
    count --;
    22 } 2
    3
    }
    24 cout<<endl<<"水王的ID是"<<shuiwang<<endl;
    25
    }

    四、运行截图

    技术分享

    五、实验总结

       在刚开始思考这个问题的时候,用了最笨的方法,就是先排序,由于“水王”发帖数目超过了帖子数目的一半,然后发现中间的ID一定是水王的ID,不过这样的时间复杂度最小是O(n+lg(n)),不满足老师的要求,所以只能一次遍历然后就找到水王的ID。在实现的过程中改了好多次,总是不太顺利,不过最终在同学的帮助下还是完成了!

  • 相关阅读:
    Entity Framework4.0 (一)概述(EF4 的Database First方法)
    开园第一篇,Hello cnBlog
    汇编学习笔记32
    汇编学习笔记25
    汇编学习笔记33
    汇编学习笔记28
    汇编学习笔记29,30
    汇编学习笔记23
    汇编学习笔记27
    汇编学习笔记31
  • 原文地址:https://www.cnblogs.com/xinyue6/p/10093313.html
Copyright © 2011-2022 走看看