class MyQueue{
private Deque<Integer> qu = new LinkedList<>();
/**
* 新增元素,n > 队尾元素,则队尾元素出队,直到空
* @param n
*/
public void add(Integer n){
while(!qu.isEmpty() && qu.getLast() < n){
qu.removeLast();
}
qu.add(n);
}
/**
* 从队头开始移除一个等于n的元素
* @param n
*/
public void remove(Integer n){
while (!qu.isEmpty() && qu.peek().equals(n)) {
qu.pop(); break;
}
}
/**
* 返回队头元素,该元素为最大元素
* @return
*/
public Integer peek(){
return qu.peek();
}
}
单调递减队列
最新推荐文章于 2024-02-19 22:17:03 发布