【发布时间】:2013-03-04 13:28:56
【问题描述】:
哪个更好,实现堆栈以获取最小元素或维护堆数据结构以提取最小元素。两者都给出了 O(1) 中的最小元素(如果您实现 2 个堆栈,一个具有最小元素,另一个堆栈具有实际输入)。
请解释一下,在什么情况下我们可以使用堆栈或堆来提取最小或最大元素以及为什么
【问题讨论】:
-
你真的是说 Stack 吗?也许是树?
-
@Roman - 是堆栈。这在面试中经常被问到,面试官要求使用堆栈来实现。
-
您是在问 system 栈和 system 堆进行内存分配,还是指使用栈和堆数据结构?跨度>
-
@mbeckish - 堆和堆栈数据结构 .. 很抱歉给您带来了困惑.. 我现在改变了我的问题。
-
您可以扩充堆栈以在 O(1) 中为您提供最小值、最大值、几何/算术平均值等。只需将这些值与实际值一起存储并在每次 push() 时更新。
标签: algorithm data-structures stack heap