课堂练习――找水王

问题:水王会回复其他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;
}

截图:

个人总结:自己一开始想的是比较复杂的遍历方法,经过老师点拨,幡然醒悟.

原文地址:https://www.cnblogs.com/1756696425ss/p/10095814.html