zoukankan      html  css  js  c++  java
  • 找水王

    一、题目:

    •三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
    •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
    二、设计思想:
    水王的帖子超过一半,在一次遍历的时候进行计数,初始值n=0;从第一个开始用m记录下ID,如果相邻两个ID一样,n就加一,m不变,如果不一样,n就减一,m不变,直到当n小于0的时候,让m为第二个ID,n=0。最后n>0,m表示的ID就是水王。
    三、源代码:
    public class main {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //ID号
    int ID[]={2012,1234,1011,2012,1011,2012,2012,1011,2012,2012,2341,2012,2012,2012,1023,1230,2012}; int n=0; int m=0; m=ID[0]; for(int i=0;i<9;i++) { if(m==ID[i+1]) { n++; } else { n--; if(n<0) { m=ID[i+1]; n=0; } } } System.out.print("水王的ID是:"+m); } }

    四、程序运行截图:

    五、个人总结:

          刚接触到题目,最先想到的是对ID进行一个一个的遍历,记录下每个ID出现的次数,但是这种方法太麻烦,时间复杂度很大。后来老师提到了消灭星星的方法,但是消灭星星是需要消灭相同的星星,在这里消灭一样的不可行,只有消灭不一样的,在同学的提醒下想到了这种方法。

  • 相关阅读:
    java连接远程linux的redis
    Mac下Sublime Text 3安装配置
    矩阵覆盖
    Mac下配置Tomcat
    用 O(1) 时间检测整数 n 是否是 2 的幂次。
    快速编程之禅
    如何在centos 7.4 上安装 python 3.6
    大众点评实时监控系统CAT的那些坑
    如何在 centos 7.3 上安装 caffe 深度学习工具
    为什么中文编程项目失败率特别高?
  • 原文地址:https://www.cnblogs.com/fengyutongxing/p/4515320.html
Copyright © 2011-2022 走看看