要求:
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。
pop() – 删除栈顶的元素。
top() – 获取栈顶元素。
getMin() – 检索栈中的最小元素
class MinStack(object):
def __init__(self):
self.stack = []#初始化栈
self.min = None
def push(self,x):
self.stack.append(x)
if self.min==None or self.min>x:
self.min = x #更新最小值
def pop(self):
pop_item = self.stack.pop()
if len(self.stack)==0;
self.min=None
return pop_item
#更新最小值
if pop_item ==self.min:
self.min = self.stack[0]
for i in self.stack:
if i<self.min:
self.min = i
return pop_item
def top(self):
return self,stack[-1]
def getMin(self):
return self.min