JZ30 包含min函数的栈
示例:
输入: ["PSH-1","PSH2","MIN","TOP","POP","PSH1","TOP","MIN"]
返回值:-1,2,1,-1
思路:设计一个最小元素栈,pop,top操作和原栈相同,但在push操作中,最小元素栈每次push的是最小的元素。
# -*- coding:utf-8 -*-
class Solution:
stack = []
stack2 = []
def push(self, node):
self.stack.append(node)
if node>self.min():
self.stack2.append(self.min())
else:
self.stack2.append(node)
def pop(self):
self.stack.pop()
self.stack2.pop()
def top(self):
return self.stack[-1]
def min(self):
if self.stack2 == []:
return 10001
return self.stack2[-1]