计算最大在线人数

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

已知数据库里面存了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-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
3 44 评论
分享
牛客网
牛客企业服务