算法挑战:
问题陈述: 您如何为Google等设计日志系统,您应该能够查询在两个时间范围内打开URL的次数。
i / p:start_time,end_time,URL1 o / p:在开始和结束时间之间打开URL1的次数。
一些规格: 数据库不是最佳解决方案 对于给定的时间戳,URL可能已多次打开。 URL可能已在两个时间戳内大量打开。 start_time和end_time可以相隔一个月。 时间可以精细到一秒。
答案 0 :(得分:0)
一个解决方案:
散列哈希
关键价值 URL哈希----> T1 CumFrequency
例如:
Amazon Hash - > T CumFreq 上午11点00分(上午11点开3次) 11月15日上午4点(上午11点15分开放1次,cumfreq是3 + 1 = 4) 11月30日上午11点(上午11:30开放4次,cumfreq为3 + 4 + 4 = 11) i / p:11:10 am,11:37 am,Amazon
o.p可以通过减去最后一个时间戳,然后是11点10分,上午11点,最后一个活动时间戳不到上午11点37分,也就是上午11点30分。因此结果是 11-3 = 8 ....
我们可以做得更好吗?