问题标题: 请问单调队列如何实现?

1
0

0
已采纳
王安川
王安川
初级守护
初级守护

单调队列,顾名思义就是具有单调性的队列O(∩_∩)O~,一般的队列只能从队尾入队、队首出队;为了保持单调队列的单调性,单调队列除具有这两种性质外,还可以从队尾出队。
以单增的单调队列为例,当元素t要入队时,先要从队尾依次弹出所有>=t的元素,再将t加在队尾。
举个例子,如果序列:1 3 -1 -3 10要构成单调队列,
先将元素“1”放入队列中,以初始化队列,
接着元素“3”要入队,队尾元素“1”比“3”小,因此“3”可以直接入队,队列变为1 3,
接着“-1”要入队,从队尾依次弹出元素“3”“1”后将“-1”入队,队列变为-1,
同理“-3”入队后,队列变为-3,
“10”入队后,队列变为-3 10

1
0
0
0
李泽远
李泽远
高级天翼
高级天翼

我也不知道。

李泽远在2020-08-28 18:57:03追加了内容

对不起,以前太水了

0
王星河
王星河
资深光能
资深光能

把有一端改成既可以入队又可以出队就可以了。

0
0
0
0
颜咏春
颜咏春
中级光能
中级光能

把有一端改成既可以入队又可以出队就可以了。

0
0
0
我要回答