课堂练习――找水王
问题:水王会回复其他ID的每个帖子,坊间传闻水王水王发帖数目超过了帖子数目的一半。如果你有一张当前论坛的帖子包括回帖列表,其中帖子作者的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; getchar(); return 0; }
截图:
个人总结:自己一开始想的是比较复杂的遍历方法,经过老师点拨,幡然醒悟.