【发布时间】:2011-07-05 06:47:36
【问题描述】:
有人问我这个问题,我认为这是可行的,但是我很难想出一个算法来做到这一点。限制是您不能使用任何其他数据结构,也不能创建另一个队列。此外,您只能使用 enqueue、dequeue 和 peek(不是优先级队列)。
感谢您的贡献:)
【问题讨论】:
-
如果你能做到这一点,我会感到非常惊讶。但是,我认为您需要更具体地了解允许使用哪种临时内存。我假设你只被允许
O(1)内存? -
没有时间和空间复杂性的限制。然而,这有点暗示空间复杂度将为 1,除非存在递归解决方案并且计算每个递归调用创建的 StackFrames 被认为会增加空间复杂度。
-
peek是只返回队列的头部,还是可以用它来查找队列任意位置的值? -
只有队列头:)
-
@3ashmawy:创建的堆栈帧必须计算在内,否则有一个非常简单的解决方案。