zoukankan      html  css  js  c++  java
  • 水王2

    一、题目

    随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

     

    二、设计思路

    这回的题目与上回很相似,我想能不能依旧使用相消的方法。最后,我发现如果一次消去四项完全不同的ID,最后剩下的必定是三个水王的ID.

     

    三、代码

    #include<iostream.h>

    int main()

    {

        int ID[10]={1,2,2,2,3,3,3,4,4,4};

        int ID_NULL;

        int shui[3];

        int flag[3];

        int i;

        shui[0]=shui[1]=shui[2]=0;

        flag[0]=flag[1]=flag[2]=ID_NULL;

        for(i=0;i<10;i++)

        {

            if(ID[i]==flag[0])

            {

                 shui[0]++;

            }

            else if(ID[i]==flag[1])

            {

                 shui[1]++;

            }

            else if(ID[i]==flag[2])

            {

                 shui[2]++;

            }

            else if(shui[0]==0)

            {

                 shui[0]=1;

                 flag[0]=ID[i];

            }

            else if(shui[1]==0)

            {

                 shui[1]=1;

                 flag[1]=ID[i];

            }

            else if(shui[2]==0)

            {

                 shui[2]=1;

                 flag[2]=ID[i];

            }

            else

            {

                 shui[0]--;

                 shui[1]--;

                 shui[2]--;

             }

        }

        cout<<"水王有:"<<endl;

        cout<<flag[0]<<"  "<<flag[1]<<"  "<<flag[2]<<endl;

        return 0;

    }

    四、截图

     

    五、总结

    这道题如果通过排序,那么1/4,2/4,3/4处即为水王ID,代码简单,但时间复杂度O(n*logn),会加大计算机的运算时间。

    代码优化任重而道远。

  • 相关阅读:
    ubuntu下环境变量
    Linux/Unix里,ln -s
    ubuntu安装和查看已安装
    Android系统中 setprop,getprop,watchprops命令的使用
    js中Math.random()生成指定范围数值的随机数
    mysql下sql语句 update 字段=字段+字符串
    铁道部2012年版全国72个铁路枢纽城市
    phprpc 使用实例(例实没错却不能执行)函数冲突gzdecode
    电脑开机一直蓝屏,一直重启要怎么办?
    电脑重装系统重装不了,老是蓝屏,是不是硬盘烧坏了!
  • 原文地址:https://www.cnblogs.com/lsfh/p/4469028.html
Copyright © 2011-2022 走看看