课堂练习-找水王

Posted deepend

tags:

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

题目

UNIN队设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

设计思想

切入点很明显,水王”发帖数目超过了帖子数目的一半。

代码实现

#include <iostream>
using namespace std;
int main()
{
    int n,i,a[1000],t,p,q,m,l;
    cout<<"请输入共发表的帖子总数:"<<endl;
    cin>>n;
    cout<<"请依次输入各个帖子的IP地址"<<endl;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
    }
    t=0;
    q=a[0];
    p=0;
    for(i=1;i<n;i++)
    {
        if(a[i]==q)
        {
            t++;
            if(t>=p)
            {
                p=t;
                m=a[i];
            }
            q=a[i];
        }
        else
        {
            l=t--;
            if(l<0)
            {
                t=0;
                q=a[i];
            }
            else
            {
                t=l;
                q=a[i];
            }
        }

    }
    cout<<"找到的水王的IP地址为:"<<m<<endl;

}

实现截图

技术图片

个人总结

题目比较简单,不过为了保证数据量较大的情况下还能正常运行就不能产生过大开销,还是需要一定思考的


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

课堂练习找水王02

课堂练习--“找水王续"

课堂练习-找水王

课堂练习-找水王

课堂练习-找水王

课堂练习 找水王