day014笔记
1.题目描述
2.代码构思(debug)
方法1: 不使用辅助栈,将数据通过元组形式传入求最小栈
class MinStack:
def __init__(self):
self.minStack = []
def push(self, val: int) -> None:
if not self.minStack:
self.minStack.append((val,val))
else:
self.minStack.append((val,min(val,self.minStack[-1][1])))
def pop(self) -> None:
if self.minStack:
del self.minStack[-1]
def top(self) -> int:
if self.minStack:
return self.minStack[-1][0]
def getMin(self) -> int:
if self.minStack:
return self.minStack[-1][1]
方法2:通过辅助栈实现
class MinStack:
def __init__(self):
self.stack = []
self.tempStack = []
def push(self, val: int) -> None:
if not (self.tempStack and self.stack):
self.tempStack.append(val)
self.stack.append(val)
else:
self.tempStack.append(val)
self.stack.append(min(val,self.stack[-1]))
def pop(self) -> None:
if self.stack and self.tempStack:
del self.stack[-1]
del self.tempStack[-1]
def top(self) -> int:
if self.tempStack:
return self.tempStack[-1]
def getMin(self) -> int:
if self.stack:
return self.stack[-1]