所谓单调线性结构,是指一个线性结构中的元素始终保持递增或递减的顺序,他的结构有单调栈,单调队列等,有时我们可以用离散化也可以将一些有着相似性质的元素利用这样的线性结构去做题。
但是我们对于一般的队列都要对他的双头进行操作,这样一来,单调栈事实上是可以被直接代替的。由于它这样的线性结构,我们时常可以利用它完成区间上的很多序列题目,特别是静态扫描的,由于这种算法的简单、实用,其实我们在一般做题的时候会很理所当然的想到。我们时常可以用它完成区间最值,区间单调序列长度等序列题。
使用方法也很简单,对于静态扫描最值时,若区间里某些数违反了单调规则,比如区间最小,若单调队列在扫描时一直呈递增状态,那么这些数都会有可能成为某个区间的最小值,但是如果突然扫到了比前面一长串都要小的值,那么这些值在后面扫面时都不可能成为最小值了,所以我们就得让这些值挨个从后面出队从而又保证了整个序列的单调性,也就维护了这个单调队列。