计算最大在线人数

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

已知数据库里面存了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

相关推荐

不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
3 44 评论
分享
牛客网
牛客企业服务