天天看點

找水王

一、題目要求

      三人行設計了一個灌水論壇。資訊學院的學生都喜歡在上面交流灌水,傳說在論壇上有一個“水王”,他不但喜歡發帖,還會回複其他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;
}
      

  

  程式截圖:

找水王