计算最大在线人数

之前面试的时候面试官说了一个算法题,感觉当时答的不是很好,想问一下下大佬们有没有比较好的解法

已知数据库里面存了100w条用户登录和注销的数据,例如每条数据的格式如下{"id" : 111, "login time":2019-07-24 02:00:00, "logout time" :2019-07-24 04:00:00 },请问这个网站的最大在线人数是多少,网站的最大在线人数的最长在线时间区间是什么?

我当时答的是找到最小的登录时间和最大的注销时间,然后细分成一个个段进行统计,找到在线人数最多的那个时间段

面试官好像不是很满意,他说这个是100w条数据,怎么找最大值,最小值呢,然后他又提示我:
用户A的登录时间是【2,4】,用户B的登录时间是【1,3】那么最大在线人数是2,最长在线时间是【2,3】
用户A的登录时间是【2,3】,用户B的登录时间是【1,4】那么最大在线人数是2,最长在线时间也是【2,3
让我再想想

。。。。
可是我想不到呀!!哎,最后还是没想出来,有没有哪位大佬可以帮忙解决一下问题,感激不尽~~~~~~~
#笔试题目#
全部评论
用一个86400长的数组 遍历文件 存下每一秒的变化量 然后前n项和就是那一秒的在线人数了
4 回复 分享
发布于 2019-07-24 18:13
求最大连续子数组和就是这个问题。 上线就是+1,下线就是-1
4 回复 分享
发布于 2019-07-24 18:26
用一个24*86400的数组,一个元素代表一秒(可以优化为一个位代表一秒)。遍历所有用户,每个用户的登录时间为起始,注销时间为末尾,区间的值变为1,这样数组的最大值就是最大在线人数,此最大值区间就是最长在线时长。
点赞 回复 分享
发布于 2019-07-24 19:11
我页面了这个题,用的字典,上线一个人就从上线时间到下线时间的每一秒加一,最后字典最大值就是活跃峰值,连续的话就是区间
点赞 回复 分享
发布于 2019-07-24 19:26
leetcode1109稍微变形
6 回复 分享
发布于 2019-07-24 19:11
这是头条的面试题吧……
点赞 回复 分享
发布于 2019-07-24 18:12
不知道对不对,望大佬指教
点赞 回复 分享
发布于 2019-07-24 19:11
**,我刚二面被问到。。
点赞 回复 分享
发布于 2019-07-24 19:22
我只想知道楼主现在在头条吗!!昨天也被问道这个问题
点赞 回复 分享
发布于 2020-06-09 16:44

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
评论
3
44
分享
牛客网
牛客企业服务