zoukankan      html  css  js  c++  java
  • 课堂练习——寻找水霸

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

    二,思路:(1)将所有的ID号从小到大进行排序,然后分别统计各个ID号的个数,找出其中出现次数超过1/4的ID号,即为所求,但时间复杂度过于复杂。

    (2)在思路一排序的基础上,三个水霸的ID号分别在1/4,1/2,3/4处。

    (3)在上一堂课寻找水王的基础上,寻找水霸即为消去连续的4个不同的ID。

    三,程序:

    #include <iostream.h>
    #include <conio.h>
    void intID(int length,int Arr[])

    {

    cout<<"输入发帖人的ID:"<<endl;

    for(int i=0;i<length;i++)

    {

    cin>>Arr[i];

    }

    }
    int main()
    {
    int length;//发帖人ID的个数
    int t[3]={0,0,0};
    int ID[3]={-1,-1,-1};
    cout<<"请输入帖子数量:";
    cin>>length;
    int * shuiba=new int [length];
    int jixu;
    intID(length,shuiba);
    for(int i=0;i<length;i++)
    {

    if(t[0]==0 && shuiba[i]!=ID[1] && shuiba[i]!=ID[2])
    {
    t[0]=1;
    ID[0]=shuiba[i];
    }
    else if(t[1]==0 && shuiba[i]!=ID[0] && shuiba[i]!=ID[2])
    {
    t[1]=1;
    ID[1]=shuiba[i];
    }
    else if(t[2]==0 && shuiba[i]!=ID[0] && shuiba[i]!=ID[1])
    {
    t[2]=1;
    ID[2]=shuiba[i];
    }

    else if(shuiba[i]!=ID[0] && shuiba[i]!=ID[1] && shuiba[i]!=ID[2])
    {
    t[0]--;
    t[1]--;
    t[2]--;
    }
    else if(shuiba[i]==ID[0])
    {
    t[0]++;
    }
    else if(shuiba[i]==ID[1])
    {
    t[1]++;
    }
    else if(shuiba[i]==ID[2])
    {
    t[2]++;
    }

    }
    cout<<"水霸的ID为:"<<ID[0]<<" "<<ID[1]<<" "<<ID[2]<<endl;
    cout<<endl;
    cout<<"要继续测试吗?(0,退出 1,继续)"<<endl;
    cin>>jixu;
    if(jixu==1)
    {
    cout<<endl;
    main();
    }
    else
    {
    return 0;
    }
    getch();
    return 0;
    }

    四,运行结果:

    五,总结:

    这道题目相对比较简单,有了前面课堂练习的基础能够解决类似问题。但题目并不是单纯地要求实现,而是要求我们运用算法来进行优化,减少程序运行时间,这就要求我们花费时间考虑更好的解决方法。找到对的解决方法才是解决这类问题的关键。

  • 相关阅读:
    fatal error LNK1112: 模块计算机类型“ARM”与目标计算机类型“X86”冲突
    总结几种结构体初始化方法 (转)
    DOS实模式下六种编译模式概述
    c中的赋值运算符
    怎么就那么多SlectObject和DeleteObject···········
    wince(3)窗口控件
    常用的几种变量命名法(匈牙利、骆驼、帕斯卡命名法)
    Perform方法在特殊操作控件上有奇效
    ReportMemoryLeaksOnShutdown内存泄露检测方法
    TWebBrowser控件的一个应用:在线刷Kx工具
  • 原文地址:https://www.cnblogs.com/xiaojin123/p/4463755.html
Copyright © 2011-2022 走看看