保持实时计数器

时间:2015-06-30 11:46:52

标签: algorithm data-structures

以下是一个面试问题,显示herehere

给定一个具有纳秒精度的定时器时间()并给出接口

interface RealTimeCounter:
    void increment()
    int getCountInLastSecond()
    int getCountInLastMinute()
    int getCountInLastHour()
    int getCountInLastDay()

getCountInLastX函数应该返回在最后一个X

中调用增量的次数

这是一个建议的解决方案(从上面的博客条目中解释):

维护时间戳的ArrayList。当被问到一个给定的计数器时,让我们说,最后一秒的计数,执行二进制搜索(timer.time() - ONE_SECOND_IN_NANOSECONDS),并返回list.length() - list_index。然后,作为定期的后台处理,我们修剪数据。由于我们只需要维护最后一天的数据,因此我们可以在最后一天之前删除所有条目。

请批评此解决方案或提供更好的表现。

0 个答案:

没有答案