找水王

设计思路:

  水王的帖子超过一半,那么就可以在一次遍历的时候进行计数(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 }     

实现截图:

个人总结:

  思路一定要开阔,不能思维定势。要从不同的角度分析,当然首先必须理解题意。

原文地址:https://www.cnblogs.com/zrdm/p/4507133.html