题目:原题链接(简单)
标签:栈、设计
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
Ans 1 (Python) | push = O ( 1 ) ) ; pop = O ( N ) ; top = O ( 1 ) ; getMin = O ( 1 ) | O ( N ) | 72ms (92.58%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class MinStack:
def __init__(self):
self.stack = []
self.min_val = None
def push(self, x: int) -> None:
self.stack.append(x)
if self.min_val is None or x < self.min_val:
self.min_val = x
def pop(self) -> None:
ans = self.stack.pop()
if ans == self.min_val:
if self.stack:
self.min_val = min(self.stack)
else:
self.min_val = None
def top(self) -> int:
return self.stack[-1]
def min(self) -> int:
return self.min_val