输入:
push(1)
min()
push(2)
min()
push(3)
min()
输出:
1
1
1
public class MinStack {
Stack<Integer> stack, minStack;
public MinStack() {
stack = new Stack<Integer>();
minStack = new Stack<Integer>();
}
/*
* @param number: An integer
* @return: nothing
*/
public void push(int number) {
stack.push(number);
if (minStack.empty() || number < minStack.peek()) {
minStack.push(number);
} else {
minStack.push(minStack.peek());
}
}
/*
* @return: An integer
*/
public int pop() {
minStack.pop();
return stack.pop();
}
/*
* @return: An integer
*/
public int min() {
return minStack.peek();
}
}
[leetcode/lintcode 题解] Google面试题:带最小值操作的栈
原文:https://www.cnblogs.com/lintcode/p/13750771.html