diff --git a/MinStack.java b/MinStack.java new file mode 100644 index 00000000..1ae36e0d --- /dev/null +++ b/MinStack.java @@ -0,0 +1,32 @@ +class MinStack { + Stack st; + Stack minSt; + int min; + + public MinStack() { + this.st = new Stack<>(); + this.minSt = new Stack<>(); + this.min = Integer.MAX_VALUE; + minSt.push(min); + } + + public void push(int val) { + min = Math.min(val,min); + st.push(val); + minSt.push(min); + } + + public void pop() { + st.pop(); + minSt.pop(); + min = minSt.peek(); + } + + public int top() { + return st.peek(); + } + + public int getMin() { + return min; + } +}