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;
    }

    四,运行结果:

    五,总结:

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

  • 相关阅读:
    qt setfixedsize以后怎么让窗口可正常resize
    总线操作使用工具
    DTK 获取活动色
    qt 设置背景色
    python_itchat模块登陆问题
    python_基础知识
    python_爬虫_str类型的html文本去标签
    工作__问题
    服务器_sshfs的安装、挂载、取消挂载
    python_爬虫_通过selenium获取人人网cookie值并模拟登陆个人界面
  • 原文地址:https://www.cnblogs.com/xiaojin123/p/4463755.html
Copyright © 2011-2022 走看看