结对开发----找出“水王"

一、题目

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

二、设计思路

   这道题的主要突破口在与水王的贴子超过了总帖子数的一半,所以在老师上课”消消乐模式“的启示下,有了灵感。

三、实验代码

#include<iostream.h>
void main()
{
    int arr[19]={2,2,1,3,1,2,1,5,2,2};  //假设的ID号
    int shuijun = 0; 
    int count=0;  //标记
    for(int i=0;i<9;i++)
    { 
        if(count == 0)
        { 
            shuijun = arr[i]; 
            count = 1; 
        } 
        else
        { 
            if(shuijun == arr[i]) 
                count ++; 
            else  
                count --; 
        } 
    }
    cout<<"水军的ID是"<<shuijun<<endl;
}

五、运行截图

六、实验总结

开始的时候,大家都认为可以从多个角度实现,而且程序也可以做的很简单,但是当老师提出时间复杂度的要求之后,原来问题没有那么简单,在进过几番思考之后,老师也给了我们一些启发,和同学共同研究有了答案,当遇到好多问题时,我们不是能力不够,而是不能够换个角度思考问题,这也是在后续的学习中应该注意的。

原文地址:https://www.cnblogs.com/myblog1993/p/4448606.html