4

嗨,这是来自CareerCup采访之一的问题。

问题陈述:您将如何为 Google 之类的东西设计日志系统,您应该能够查询在两个时间范围内打开 URL 的次数。

i/p : start_time , end_time , URL1 o/p : URL1 在开始和结束时间之间打开的次数。

一些规范: 数据库不是最佳解决方案 对于给定的时间戳,可能已多次打开 URL。一个 URL 可能在两个时间戳内被打开了很多次。start_time 和 end_time 可以相隔一个月。时间可以精确到一秒。


我的做法:

日志系统:构建一个哈希表,键为 url,值为单击 url 的时间的数组列表。查询时间:当给定时间范围时,应用修改后的二进制搜索并获取该时间范围之间的位置,然后计算该时间范围之间打开网址的次数

有人可以评论我的方法或提出更好的方法。谢谢。

PS我看过这个(信息检索:时间范围内的URL命中)但我没有发现它很有帮助,所以再次询问。

4

1 回答 1

0

我会按以下方式解决问题 -

贮存

我会使用具有 Key ---> URL Value ---> ArrayList of Date 的 HashMap

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

恢复

对于给定的时间范围 t1 & t2 和 URL,我将获取与 URL 对应的 arraylist 并找到 t1 & t2 的位置。只是有一个计数器要递增,直到达到 t2。

于 2013-09-04T09:02:59.313 回答