設計思路:
水王的文章超過一半,那麼就可以在一次周遊的時候進行計數(n=0),如果ID跟第一個一樣,那麼就n加一,如果不一樣,就n減一,當n小于0的時候更新ID,同時n=0。最後n>0時,ID就是水王
代碼實作:
1 #include <iostream>
2 using namespace std;
3 #define N 10
4
5 void main()
6 {
7 int a[N]={2,3,2,2,2,1,2,4,1,2};//每個文章的ID
8 int n = 0;
9 int m = a[0]; //ID
10 for(int i = 0;i < N;i++)
11 {
12 if (m == a[i])
13 {
14 n++;
15 }
16 else
17 {
18 n--;
19 }
20 if (n <= 0)
21 {
22 m = a[i];
23 n = 1;
24 }
25 }
26 cout << "水王是:" << m << endl;
27 }
實作截圖:

個人總結:
思路一定要開闊,不能思維定勢。要從不同的角度分析,當然首先必須了解題意。