题目链接:https://leetcode-cn.com/problems/bao-han-minhan-shu-de-zhan-lcof/
难度:简单
描述:
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
题解
class MinStack:
def __init__(self):
"""
initialize your data structure here.
"""
self.stk = []
self.min_stk = []
def push(self, x: int) -> None:
self.stk.append(x)
if self.min_stk == []:
self.min_stk.append(x)
else:
if x < self.min_stk[-1]:
self.min_stk.append(x)
else:
self.min_stk.append(self.min_stk[-1])
def pop(self) -> None:
self.stk.pop()
self.min_stk.pop()
def top(self) -> int:
return self.stk[-1]
def min(self) -> int:
return self.min_stk[-1]