【发布时间】:2014-01-15 18:47:04
【问题描述】:
我们有N 整数计数器,最初显示为 0。操作:
int getMax() - 返回计数器显示的最大值。void increment(int i) - 增加计数器 i 的值。void zero() - 为所有计数器设置零值。备用名称是flood(),也许这个名称会对您有所帮助。
这些操作和底层数据结构的当前实现,知道我们希望这些操作尽可能快。
这是我的面试问题。由于我的记忆力不足,我说的有点错误的可能性很小,但我尽力了。也许它类似于一些众所周知的问题? (我希望。)
据我所知,所有操作都可以在 O(1) 中完成...其中一个操作是“懒惰的”(可能是 increment)...什么都不做,但后来当用户使用getMax() 请求价值时 - 它起作用了。
【问题讨论】:
标签: performance algorithm language-agnostic