zoukankan      html  css  js  c++  java
  • 课堂练习-找水王续

    1.题目。

    三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
    如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?(参考核心代码)
    随着论坛的发展,管理员发现水王没有了,但是统计结果表明,有三个发帖很多的ID。据统计他们的发帖数量超过了1/4,你能从发帖列表中快速找到他们吗?

    2.设计思想。

    通过消除的方法实现,分别将三个连续的ID存到 counter[0],counter[1],counter[2]中,再检测第四个数,如果与前面三个数不同,每个counter都减一,否则相同的counter加一。一直检测到最后一个id。

    3.代码。

    #include<iostream.h>
    #include <stdlib.h>
    int main()
    {
        int length;
        int Idnum[3]={0,0,0};
        int ID[3]={0,0,0};      
        cout<<"请输入总帖子数量:"<<endl;
        cin>>length;
        int * curId=new int [length];
         cout<<"请输入水军的ID列表"<<endl;
        for(int j=0;j<length;j++)
        {
            cin>>curId[j];
        }
        for(int i=0;i<length;i++)
        {
            if(Idnum[0]==0 && curId[i]!=ID[1] && curId[i]!=ID[2])
            {
                Idnum[0]=1;
                ID[0]=curId[i];
            }
            else if(Idnum[1]==0 && curId[i]!=ID[0] && curId[i]!=ID[2])
            {
                Idnum[1]=1;
                ID[1]=curId[i];
            }
            else if(Idnum[2]==0 && curId[i]!=ID[0] && curId[i]!=ID[1])
            {
                Idnum[2]=1;
                ID[2]=curId[i];
            }
            else if(curId[i]!=ID[0] && curId[i]!=ID[1] && curId[i]!=ID[2])
            {
                Idnum[0]--;
                Idnum[1]--;
                Idnum[2]--;
            }
            else if(curId[i]==ID[0])
            {
                Idnum[0]++;
            }
            else if(curId[i]==ID[1])
            {
                Idnum[1]++;
            }
            else if(curId[i]==ID[2])
            {
                Idnum[2]++;
            }       
        }
        cout<<"三个水桶ID为:";
        cout<<ID[0]<<" "<<ID[1]<<" "<<ID[2]<<" "<<endl;
        return 0;
    }


    4.运行结果。

    5.心得体会。

    通过题意出发,通过消除的方法实现代码算法。

  • 相关阅读:
    js正则表达式中的问号使用技巧总结
    380. Insert Delete GetRandom O(1)
    34. Find First and Last Position of Element in Sorted Array
    162. Find Peak Element
    220. Contains Duplicate III
    269. Alien Dictionary
    18. 4Sum
    15. 3Sum
    224. Basic Calculator
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/nulidexuezha/p/4469681.html
Copyright © 2011-2022 走看看