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