`
class MinStack{Deque<Integer> stack;Deque<Integer> minStack;int min = Integer.MAX_VALUE;public MinStack() {stack = new ArrayDeque<>();minStack = new ArrayDeque<>();}public void push(int val) {stack.push(val);if(val<min){minStack.push(val);min = val;}else{minStack.push(min);}}public void pop() {stack.pop();minStack.pop();if(minStack.isEmpty()){min = Integer.MAX_VALUE;return;}min = minStack.peek();}public int top() {return stack.peek();}public int getMin() {return min;}
}`