【发布时间】:2012-10-24 18:50:35
【问题描述】:
我问这个问题的原因是因为我不明白为什么我认为的方式不能应用于这个特定问题
“你将如何设计一个堆栈, 除了push和pop,还有一个函数min,它返回最小元素? push、pop 和 min 都应该在 O(1) 时间内运行"
我的基本解决方案:如果我们在 stack 类中有一个变量,那么当我们将一个项目推入堆栈时,我们会检查它是否有可能比我们的 min 变量小。如果是赋值给最小值,如果不是忽略。
你仍然会得到 O(1),就像 min 函数一样;
int getMinimum(){
return min;
}
为什么从来没有提到过这个解决方案,或者我的想法有什么问题?
【问题讨论】:
-
如果最小元素从堆栈中弹出怎么办?您如何在 O(1) 时间内找到新的最小值?
-
@SebastianPaaskeTørholm 非常感谢。我现在明白了
标签: performance algorithm data-structures stack