代码思路:
a. 如果最小值栈内为空,则正常push
b.如果最小值栈不为空,则比较将要push的值 与 最小值栈中栈顶元素,如果 将要入栈的值小于或者等于最小值栈 中的栈顶元 素,则将该元素压入正常的栈 并且 将该元素雅茹最小值栈中。
c. pop 出栈时,将出栈元素与 最小值栈顶元素进行比较,如果相等,则最小值栈也进行出栈操作,否则不做操作。
import java.util.Stack;
public class Solution {
private Stack<Integer> stack = new Stack();
private Stack<Integer> stackHandler = new Stack();
public void push(int node) {
if(stackHandler.empty()){
stackHandler.push(node);
}
if(node <= stackHandler.peek()){
stackHandler.push(node);
}
stack.push(node);
}
public void pop() {
if(stack.pop() == stackHandler.peek()){
stackHandler.pop();
}
}
public int top() {
return stack.peek();
}
public int min() {
return stackHandler.peek();
}
}