一、题目
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他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; }
五、运行截图
六、实验总结
开始的时候,大家都认为可以从多个角度实现,而且程序也可以做的很简单,但是当老师提出时间复杂度的要求之后,原来问题没有那么简单,在进过几番思考之后,老师也给了我们一些启发,和同学共同研究有了答案,当遇到好多问题时,我们不是能力不够,而是不能够换个角度思考问题,这也是在后续的学习中应该注意的。