【发布时间】:2012-09-10 19:48:48
【问题描述】:
这是一道面试题。您需要设计一个包含整数值的队列,并具有一个 getMedian() 函数,该函数返回当前队列的中值元素。您可以使用 O(n) 额外空间。
getMedian()可以实现时间复杂度 例如:
当队列具有以下值时(2、1、2、2、6、4、2、5)
此方法返回 2 并且不会删除该对象。
【问题讨论】:
-
对不起,我现在改了例子。
-
队列是否有它可以包含的最大对象数?队列的所有其他功能(如推送和弹出)是否需要保持相同的复杂度?
-
您必须尽可能高效地实现 getMedian。其他功能的复杂性不必保持不变。
-
除非我弄错了,这是要求堆。
-
@user913359: 你想要队列 + 中位数,即先进先出,还是优先队列 + 中位数,即任意优先级最高的元素先出?