- push()、pop()和top()分别对应栈的push()、pop()和peek();
- min()方法返回栈中的最小值,用优先队列PriorityQueue可以实现:
2.1 队列中的元素与栈中的完全相同,并且是从小到大排序好的,队首始终是栈的实时最小数字。
2.2 栈push()新的数字,队列也add()并排序;栈pop()出数字,队列也remove()出该数字。
import java.util.Stack; import java.util.*; public class Solution { private Stack<Integer> s = new Stack<>(); private PriorityQueue<Integer> pq = new PriorityQueue<>(); public void push(int node) { s.push(node); pq.add(node); } public void pop() { pq.remove(s.pop()); } public int top() { return s.peek(); } public int min() { return pq.peek(); } }