给定一个具有纳秒精度的定时器时间()并给出接口
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。然后,作为定期的后台处理,我们修剪数据。由于我们只需要维护最后一天的数据,因此我们可以在最后一天之前删除所有条目。
请批评此解决方案或提供更好的表现。