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),会加大计算机的运算时间。

    代码优化任重而道远。

  • 相关阅读:
    如何使页面中的INPUT按指定的顺序移动焦点{转}
    Eclipse把包引入到项目中的方法
    mssqlserver和sqlexpress的区别{转}
    WPF中动态加载XAML中的控件
    修改Eclipse的智能感知设置
    格式化包括字符串, 数字, 日期, 枚举等类型数据的格式化
    ASP.NET身份验证机制membership入门——配置篇(1){转}
    JAVA基础总结{转}
    asp.net mvc的生命周期{转}
    使用开源免费类库在.net中操作Excel{转}
  • 原文地址:https://www.cnblogs.com/lsfh/p/4469028.html
Copyright © 2011-2022 走看看