- 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();
}
}