题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
我的解答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
import java.util.Stack;
public class Solution {
Stack<Integer> stack = new Stack(); Stack<Integer> minStack = new Stack(); public void push(int node) { if (minStack.isEmpty()) { minStack.push(node); }else if (minStack.peek() > node) { minStack.push(node); } stack.push(node); } public void pop() { if (stack.peek() == minStack.peek()){ minStack.pop(); } stack.pop(); } public int top() { return stack.peek(); } public int min() { return minStack.peek(); } }
|
近期评论