题目


提示:
pop、top和getMin操作总是在 非空栈 上调用。
思路
要在常数时间内获得当前栈的做小元素,那么只能申请一个额外的辅助栈aux_stack,保存当前栈的最小值。
class MinStack:def __init__(self):"""initialize your data structure here."""self.stack = []self.aux_stack = []def push(self, x: int) -> None:self.stack.append(x)if not self.aux_stack or x <= self.aux_stack[-1]:self.aux_stack.append(x)def pop(self) -> None:if self.stack.pop() <= self.aux_stack[-1]:self.aux_stack.pop()def top(self) -> int:return self.stack[-1]def getMin(self) -> int:return self.aux_stack[-1]
