diff --git a/NeetCodeRoadmap/Stack/155_Min_Stack.py b/NeetCodeRoadmap/Stack/155_Min_Stack.py new file mode 100644 index 0000000..118c22a --- /dev/null +++ b/NeetCodeRoadmap/Stack/155_Min_Stack.py @@ -0,0 +1,63 @@ +class MinStack(object): + + def __init__(self): + self.st=[] #stack + self.min=None #min element + + def push(self, val): + """ + :type val: int + :rtype: None + """ + if len(self.st)==0: + self.st.append(val) + self.min=val + else: + if val>=self.min: + self.st.append(val) + else: + self.st.append(2*val-self.min) + self.min=val + + def pop(self): + """ + :rtype: None + """ + x=self.st.pop() + if x=self.min: + return x + return self.min + + + def getMin(self): + """ + :rtype: int + """ + return self.min + + +minStack = MinStack() +minStack.push(-2) +minStack.push(0) +minStack.push(-3) +minStack.getMin() # return -3 +minStack.pop() +minStack.top() # return 0 +minStack.getMin() # return -2 + + + +# Your MinStack object will be instantiated and called as such: +# obj = MinStack() +# obj.push(val) +# obj.pop() +# param_3 = obj.top() +# param_4 = obj.getMin() \ No newline at end of file