找水王

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找水王相关的知识,希望对你有一定的参考价值。

一、题目要求

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

二、设计思路

     (1) 我首先想到的是将帖子的ID都统计一下,然后在比较,最大的就会是水王的帖子,但是我的方法空间复杂度较高,便换了一种方法。

     (2) 有一种更为简单额一种思路,就是消消乐思想:既然水王的帖子为一半以上,那么将相邻的帖子删掉剩下的必定为水王的帖子

#include<iostream>
using namespace std;
int main()
{
	int num[1000];
	int i, n;

	int count = 1;
	cout << "输入ID个数:";
	cin >> n;
	cout << "输入ID:";
	for (i = 0; i<n; i++)
	{
		cin >> num[i];
		//cout<<num[i];

	}
	cout << endl;
	int a = num[0];
	for (i = 0; i<n; i++)
	{
		if (num[i] == a)
		{
			count++;

		}
		else
		{
			count--;
		}
		if (count == 0)
		{
			a = num[i];
			count = 1;
		}

	}
	cout << "水王的ID:" << a << endl;
	return 0;
}

  

  程序截图:

技术分享

以上是关于找水王的主要内容,如果未能解决你的问题,请参考以下文章

找水王

找水王2

找水王续

课堂练习-找水王

找水王2

课堂练习--找水王