题解 | #包含min函数的栈#双栈实现(时间复杂度o(1)) 也可以双list实现 思路一样
包含min函数的栈
http://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
import java.util.Stack; public class Solution { private Stack<Integer> stack = new Stack<>(); private Stack<Integer> minStack = new Stack<>(); public void push(int node) { stack.push(node); if(minStack.isEmpty()){ minStack.push(node); } else { int top = minStack.peek(); minStack.push(Math.min(top,node)); } } public void pop() { if(!stack.isEmpty()){ stack.pop(); minStack.pop(); } } public int top() { if(!stack.isEmpty()){ return stack.peek(); } else { return -1; } } public int min() { if(!minStack.isEmpty()){ return minStack.peek(); } else { return -1; } } }