寻找水王

Posted 我是骨德

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寻找水王相关的知识,希望对你有一定的参考价值。

一、问题描述

  三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

  如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

二、设计思想

  因为水王的回帖数超过了一半,每次删除两个帖子的作者,删除条件是这两个作者不是同一个ID,最后剩下的肯定是水王。

三、代码实现

#include <iostream>
using namespace std;  
  
int find (int *a, int N)  
{  
    int candiate;  
    int i, time;  
    for (i = time = 0; i < N; i++)  
    {  
        if (0 == time)  
        {  
            candiate = a[i];  
            time = 1;  
        }  
        else  
        {  
            if (candiate == a[i])  
            {  
                time++;  
            }  
            else  
            {  
                time--;  
            }  
        }  
    }  
    return candiate;  
}   
  
  
void main()  
{  
    int a[] = {1,2,3,4,5,8,2,3,4,1,6,12};  
    cout<<"水王是:"<<find(a,12)<<endl;  
}  

以上是关于寻找水王的主要内容,如果未能解决你的问题,请参考以下文章

寻找“水王”

寻找水王程序二

寻找水王2——寻找三个小水王

课堂作业之寻找水王

课堂作业值之寻找水王2

寻找水王2