From 18baee9bd554afcde6b86e3e3f0a5fdded870349 Mon Sep 17 00:00:00 2001 From: ImAlpha Date: Tue, 26 Sep 2023 21:07:10 -0700 Subject: [PATCH] Completes all test cases --- NeetCodeRoadmap/Stack/155_Min_Stack.py | 63 ++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 NeetCodeRoadmap/Stack/155_Min_Stack.py 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