LeetCode 155:最小栈,如何让最小值跟着栈一起变化

题目要求 设计一个栈 MinStack,支持以下操作: MinStack():初始化栈。 push(value):把 value 压入栈顶。 pop():删除栈顶元素。 top():返回栈顶元素。 getMin():返回栈中的最小元素。 题目要求每个操作的时间复杂度都是 O(1)。 pop、top 和 getMin 只会在栈非空时调用,因此不需要为这些方法设计额外的空栈返回值。 示例 输入操作: ["MinStack", "push", "push", "push", "getMin", "pop", "top", "getMin"] 输入参数: [[], [-2], [0], [-3], [], [], [], []] 输出: [null, null, null, null, -3, null, 0, -2] 对应的执行过程是: min_stack = MinStack() min_stack.push(-2) min_stack.push(0) min_stack.push(-3) min_stack.getMin() # -3 min_stack.pop() min_stack.top() # 0 min_stack.getMin() # -2 约束 -2^31 <= value <= 2^31 - 1 最多调用 3 * 10^4 次 push、pop、top 和 getMin pop、top 和 getMin 调用时栈一定非空 Step 1:弹出最小值后,前一个最小值从哪里回来 普通栈已经能保存值,并按照后进先出的顺序执行 push、pop 和 top。当前 baseline 是: ...

2026年8月21日 · 4 分钟 · map[name:Jeanphilo]