1. 单调队列
1.1 定义
单调队列是一种数据结构,它以特定顺序维护其元素,使得每个元素相对于其相邻元素不增加或不减少。单调队列主要有两种类型:
- Monotonically Increasing Queue:
单调递增队列:每个元素小于或等于队列中的下一个元素, 即数值的整体趋势是在增加 - Monotonically Decreasing Queue: 单调递减队列:每个元素大于或等于队列中的下一个元素。
Monotonically Increasing Queue单调递增队列
在单调递增的队列中,对于队列中出现的 任意两个元素 a a a , b b b , 且 a a a 出现在 b b b 之前, 则 a ≤ b a \leq b a≤b 的关系 必须 成立。这意味着当您从队列的前面移动到后面时,元素可以相同或增加,但不能减少。
Example:例:
- Valid: [ 1 , 2 , 2 , 3 , 4 ] [1, 2, 2, 3, 4] [1,2,2,3,4]
- Invalid: [ 1 , 3 , 2 , 4 ] [1, 3, 2, 4] [1,3,2,4]
Monotonically Decreasing Queue单调递减队列
在单调递减队列中,对于队列中出现的任意两个元素 a a a , b b b a a a 关系 a ≥ b a \geq b a≥b 成立。 b b b 这意味着当您从队列的前面移动到后面时,元素可以相同或减少,但不能增加。
Example:例:
- Valid: