码迷,mamicode.com
首页 > 其他好文 > 详细

12.6 水王

时间:2018-12-09 21:30:59      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:就是   最小   技术   问题   代码实现   目的   cout   题目   多次   


一、题目要求

  三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他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。在实现的过程中改了好多次,总是不太顺利,不过最终在同学的帮助下还是完成了!

12.6 水王

标签:就是   最小   技术   问题   代码实现   目的   cout   题目   多次   

原文地址:https://www.cnblogs.com/xinyue6/p/10093313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!