class MinStack { Stack<Integer> data; Stack<Integer> helper; /** initialize your data structure here. */ public MinStack() { data = new Stack<Integer>(); helper = new Stack<Integer>(); } public void push(int x) { data.push(x); if(helper.size() == 0) { helper.push(x); } else { if(helper.peek() >= x) { helper.push(x); } } } public void pop() { int ans = data.pop(); if(ans == helper.peek()) { helper.pop(); } } public int top() { return data.peek(); } public int min() { return helper.peek(); } }