博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找水王
阅读量:7226 次
发布时间:2019-06-29

本文共 1092 字,大约阅读时间需要 3 分钟。

一、题目:

•三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他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出现的次数,但是这种方法太麻烦,时间复杂度很大。后来老师提到了消灭星星的方法,但是消灭星星是需要消灭相同的星星,在这里消灭一样的不可行,只有消灭不一样的,在同学的提醒下想到了这种方法。

 

转载于:https://www.cnblogs.com/fengyutongxing/p/4515320.html

你可能感兴趣的文章
ADB server didn't ACK 解决方法
查看>>
奥迪与Alta达成合作,将为电动汽车打造太阳能天窗
查看>>
【连载】物联网全栈教程-从云端到设备(十一)---调用阿里云API,获取物的属性。...
查看>>
美军制造3D打印无人机,最高时速55英里
查看>>
Netweaver和CloudFoundry里的trace开关
查看>>
工作负载不要全部放在公共云的篮子中!
查看>>
tf.Graph().get_operations
查看>>
【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制
查看>>
[图文教程]阿里云万网域名一键签发SSL证书 快捷申请免费SSL证书
查看>>
区块链简介
查看>>
大谷无人机将追求“才貌双全”
查看>>
量子世界的十个事实
查看>>
U-Boot启动过程完全分析
查看>>
Web性能优化工具WebPageTest(二)——性能数据
查看>>
Lucene 6.0中BooleanQuery
查看>>
数据库反规范设计
查看>>
Oracle数据库在线备份原理
查看>>
阿里云MaxCompute香港开服 将引入更多人工智能服务
查看>>
你的指纹还安全吗? - BlackHat 2015 黑帽大会总结 day 2
查看>>
2、SRX笔记及基础配置
查看>>