思路:根据老师上课提示的“消消乐”方法,因为水王的发帖子的数量超过一半,所以两个不同的帖子消去,最后剩下的肯定就是水王的id
#include <iostream> using namespace std; typedef int DataType; DataType FindKing(DataType* ID, int n) { DataType candidate; int nTime, i; nTime = 0; for (int i = 0; i<n; i++) { if (nTime == 0) { candidate = ID[i]; nTime = 1; } else { if (candidate == ID[i]) nTime++; else nTime--; } } return candidate; } int main() { DataType ID[10] = { 1, 1, 1, 1, 1, 2, 3, 4, 5, 1 }; cout << "水王是:"<<FindKing(ID, 10) << endl; return 0; }