//维护一个Min Stack
public class MinStack {
Stack<Integer> stk = new Stack<Integer>();
Stack<Integer> minStk = new Stack<Integer>();
public MinStack() {
// do initialize if necessary
}
public void push(int number) {
stk.push(number);
if (minStk.isEmpty()){
minStk.push(number);
}
else {
int tmp = minStk.peek();
if (tmp >= number) {
// minStk.pop();
minStk.push(number);
}
}
}
public int pop() {
if (stk.peek().equals(minStk.peek())) {
minStk.pop();
}
return stk.pop();
}
public int min() {
return minStk.peek();
}
}