Min Stack
Example
push(1)
pop() // return 1
push(2)
push(3)
min() // return 2
push(1)
min() // return 1class MinStack(object):
def __init__(self):
self.stack = []
self.minstack = []
def push(self, number):
self.stack.append(number)
if len(self.minstack) > 0 :
self.minstack.append(min(number, self.minstack[-1]))
else:
self.minstack.append(number)
def pop(self):
if len(self.stack) > 0:
self.minstack.pop()
return self.stack.pop()
return -1
def min(self):
return self.minstack[-1]Last updated