diff --git a/neetcode/arrays/mininum_stack/README.md b/neetcode/arrays/mininum_stack/README.md new file mode 100644 index 0000000..e69de29 diff --git a/neetcode/arrays/mininum_stack/solution.png b/neetcode/arrays/mininum_stack/solution.png new file mode 100644 index 0000000..26e7348 Binary files /dev/null and b/neetcode/arrays/mininum_stack/solution.png differ diff --git a/neetcode/arrays/mininum_stack/solution.py b/neetcode/arrays/mininum_stack/solution.py new file mode 100644 index 0000000..89a2aa3 --- /dev/null +++ b/neetcode/arrays/mininum_stack/solution.py @@ -0,0 +1,35 @@ +class MinStack: + def __init__(self): + self.stack = [] + self.min_stack = [] + + def push(self, val: int) -> None: + self.stack.append(val) + if not self.min_stack: + self.min_stack.append(val) + else: + self.min_stack.append(min(val, self.min_stack[-1])) + + def pop(self) -> None: + if self.min_stack: + self.min_stack.pop() + if self.stack: + self.stack.pop() + else: + return None + + def top(self) -> int: + return self.stack[-1] + + def getMin(self) -> int: + if self.min_stack: + return self.min_stack[-1] + else: + return None + +if __name__ == "__main__": + s = MinStack() + s.push(12) + s.pop() + s.pop() + print(s.getMin())