找水王
设计思路:
水王的帖子超过一半,那么就可以在一次遍历的时候进行计数(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 }
实现截图:
个人总结:
思路一定要开阔,不能思维定势。要从不同的角度分析,当然首先必须理解题意。