什么叫单调?
• 一些数据从小到大排列 —— 单调递增
• 从大到小排列 —— 单调递减
单调队列
• 单调递增的队列:在队列的基础上,时刻保持队列中的元素单调递增。
• 单调递减的队列:在队列的基础上,时刻保持队列中的元素单调递减。
怎么做到?
• 除了队首可以出队外,新增一个在队尾出队的操作;
• 新元素要进队,先让不满足单调性的元素从队尾出队。
举个例子
• 元素是整数,单调递增的队列,允许重复元素
• 一开始是个空队列
• 数字 3进队 空队列,直接进队
• 数字 5进队 能保持单调性,直接进队
• 数字 8进队 能保持单调性,直接进队
• 数字 5进队 不能保持单调性,先将 8出队,再让 5进队
• 出队 数字 3出队
• 数字 9进队 能保持单调性,直接进队
• 数字 4进队 &nb