• 课堂练习-找水王


    三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

    如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    实验代码:

    bean.java

    public class bean {
        private int id;
        private String userid;
        private String type;
        public bean(int id,String userid,String type)
        {
            this.id=id;
            this.userid=userid;
            this.type=type;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
    
        public String getType() {
            return type;
        }
        public void setType(String type) {
            this.type = type;
        }
        public String getUserid() {
            return userid;
        }
        public void setUserid(String userid) {
            this.userid = userid;
        }
    
    }

    dao.java

    import java.util.ArrayList;
    import java.util.List;
    
    public class dao {
        public static void main(String[] args)
        {
            bean[] num=new bean[10];
            num[0]=new bean(1,"001","发帖");
            num[1]=new bean(2,"002","回帖");
            num[2]=new bean(3,"001","发帖");
            num[3]=new bean(4,"003","回帖");
            num[4]=new bean(5,"001","发帖");
            num[5]=new bean(6,"001","回帖");
            num[6]=new bean(7,"005","回帖");
            num[7]=new bean(8,"001","发帖");
            num[8]=new bean(9,"001","发帖");
            num[9]=new bean(10,"006","回帖");
            display(num);
            
            
        }
        public static void display(bean[] num)
        {
            int c = -1;
            int n=num.length;
            int m=0;
            String a=num[0].getUserid();
            for(int i=0;i<n;i++)
            {
                if(a.equals(num[i].getUserid()))
                {
                    m++;
                }
                else
                    m--;
                if(m<0)
                {
                    a=num[i].getUserid();
                    m=0;
                }
                
            }
            System.out.println("水王是:"+a);
        }
    
    }

    实验思路:

    设计一个计数器m,假设第一个为水王,之后进行比较,如果相同则计数器加一,不同则减一,当计数器小于0时重新设置水王重新计算。

    实验截图:

    实验总结:

      本次实验中最重要的一点是水王永远是发帖数量最多的那一个,在此基础上进行筛选会方便的多,因此在看待问题时,要先抓住事物的特性。

  • 相关阅读:
    P2639 [USACO09OCT]Bessie的体重问题Bessie's We…
    P2871 [USACO07DEC]手链Charm Bracelet
    P1983 车站分级
    P1038 神经网络
    P1991 无线通讯网
    P1546 最短网络 Agri-Net
    P1197 [JSOI2008]星球大战
    P1004 方格取数
    P1111 修复公路
    pd_ds 之 hash
  • 原文地址:https://www.cnblogs.com/liujinxin123/p/10969848.html
Copyright © 2020-2023  润新知