Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
Example 1:
Input
["MinStack","push","push","push","getMin","pop","top","getMin"]
[[],[-2],[0],[-3],[],[],[],[]]
Output
[null,null,null,null,-3,null,0,-2]
Explanation
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); // return -3
minStack.pop();
minStack.top(); // return 0
minStack.getMin(); // return -2
Constraints:
pop
, top
and getMin
operations will always be called on non-empty stacks.class MinStack:
def __init__(self):
"""
initialize your data structure here.
"""
self.__stack=[]
def push(self, x: int) -> None:
if self.__stack:
self.__stack.append((x,min(x,self.__stack[-1][1]))) # (x,minimum)
else:
self.__stack.append((x,x))
def pop(self) -> None:
if self.__stack:
self.__stack.pop()
def top(self) -> int:
if self.__stack:
return self.__stack[-1][0]
def getMin(self) -> int:
return self.__stack[-1][1]
# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(x)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()
Many thanks for that publish as well as excellent ideas.. actually We additionally believe that effort is actually the most crucial ingredient of obtaining achievement. 카지노사이트 도메인
Cultivate the nice give good results, I just read through a small number of items on that blog not to mention In my opinion that this web site blog page might be proper significant as well as gained circles from awesome advice. Pinny