百度面试题讨论

统计地铁   某一秒的 人数
数据:
时间都到秒级别
进站时间   出站时间   卡ID

然后怎么设计一种结构,可以提供查询  某一秒的 人数, 查第 3  第5秒的人数

感觉我的思路很naive:
假设查询第T秒,问题转化成   统计 出站时间 > T 并且 进站时间<T 的条数
这种日志一般都是有序的,先找到进站时间 >T的点,然后倒着往回找出站时间<T的点, 它们之间的就是人数

然后把结果保存起来,用树形结构,加速查找。


感觉我没答到点上,求思路
#百度#
全部评论
典型的线段树 or 树状数组
点赞 回复
分享
发布于 2016-08-11 18:07
这个应该就是线段树了
点赞 回复
分享
发布于 2016-08-11 21:03
联易融
校招火热招聘中
官网直投
令牌桶
点赞 回复
分享
发布于 2016-08-11 22:59
利用hash解决,开辟一个60*60*24 数组a,初始化为0.读取进和出的日志,比如在第10秒进有100人,则a[100]+=100.在第10秒出了20人,则a [100]-=20那么最后第10秒的人数为80.遍历万正个进和出的日志,那么数组a中就为每一秒的变化人数,在申请一个数住b大小和a一样,b[i]=a[i]+b[i-1], b[0]=a[0] 这样b[i]即为第 i秒前总人数
点赞 回复
分享
发布于 2016-08-11 23:06
这道题是百度以前的面试题了,4楼正解
点赞 回复
分享
发布于 2016-08-12 14:35
这题目跟统计某时刻的IP在线一样啊,简单来说就是分成每一时刻,记录进站出站,4楼正解
点赞 回复
分享
发布于 2016-08-12 17:08

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务