Z's Random Walk

异国漂泊,野蛮生长

0%

Intuition Between Monotonic Stack and Deque

这篇文章简略说明了下单调栈和单调双端队列的感性认知和经典应用。

TODO:本来想画画图啥的,但最近有点忙,以后有空再补上和详细说明吧

Monotonic stack

stack一般用法:遇到有多个level的,跳入下个level可用stack存当前level的状态,跳出时恢复

  • 直觉感受寻找波峰波谷,递减栈会剔除波谷,留下波峰;递增栈剔除波峰,留下波谷
  • 1130. Minimum Cost Tree From Leaf Values Hard 需变形+贪心
    什么是 波谷, 比如在这个题目里面,我们要找到这么一种形式的三个数, a > b < c,然后在a和c里面选小的和b合并,那么就可以用**递减栈**来找,并剔除波谷
    即,假设**递减栈**中有 […, a, b],遇到 c > b,形成波谷,此时 pop b(和a,c中任何一个合并,即剔除波谷),变成[…, a], c

Monotonic Deque

  • 经典用法是维护滑动窗口的最大值和最小值
  • TODO: 补充其它例题