Algorithm 为Google之类的东西设计一个日志系统,以获取URL在指定时间段内被点击的频率

Algorithm 为Google之类的东西设计一个日志系统,以获取URL在指定时间段内被点击的频率,algorithm,Algorithm,嗨,这是一个来自中国的采访中的问题 问题陈述:你将如何为谷歌这样的东西设计一个日志系统,你应该能够查询URL在两个时间范围内被打开的次数 i/p:开始时间、结束时间、URL1 o/p:在开始和结束时间之间打开URL1的次数 一些规范:数据库不是最佳解决方案URL可能已经为给定的时间戳打开了多次。URL可能在两个时间戳内被多次打开。开始时间和结束时间可以相隔一个月。时间可以精确到一秒钟 我的做法: 日志记录系统:构建一个哈希表,其中键作为url,值作为url被单击时的时间数组列表。 查询时间:给

嗨,这是一个来自中国的采访中的问题

问题陈述:你将如何为谷歌这样的东西设计一个日志系统,你应该能够查询URL在两个时间范围内被打开的次数

i/p:开始时间、结束时间、URL1 o/p:在开始和结束时间之间打开URL1的次数

一些规范:数据库不是最佳解决方案URL可能已经为给定的时间戳打开了多次。URL可能在两个时间戳内被多次打开。开始时间和结束时间可以相隔一个月。时间可以精确到一秒钟


我的做法:

日志记录系统:构建一个哈希表,其中键作为url,值作为url被单击时的时间数组列表。 查询时间:给定时间段后,应用修改后的二进制搜索,获取该时间段之间的位置,然后计算在该时间段之间打开url的次数

请有人对我的方法发表评论或提出更好的方法。谢谢


另外,我已经看过这个()了,但是我觉得没有什么帮助,所以再次询问。

我会按照下面的方法处理这个问题-

存储 我会使用HashMap 键-->URL 值-->日期的数组列表

每次单击URL时,我都会在上面的hashmap中添加/更新条目

检索
对于给定的时间段t1和t2以及URL,我将获得对应于URL的arraylist,并找到t1和t2的位置。只有一个计数器才能递增,直到达到t2

Google有一个Website\URL statistics API,与之集成并按时间框架进行查询给定低时间T1和高时间T2对ArrayList进行二进制搜索以查找(第一项>=T1)=ArrayList[T1]和(最后一项@munna我在我的问题中提到了同样的方法。但我很好奇这是否是一个好方法。看看网络的大小,使用hashmap对我来说听起来不是一个好主意。