直方图最大矩形

单调栈(Monotonic Stack)深度实战:从「下一个更大元素」的第一性原理、严格与非严格单调,到直方图最大矩形、接雨水、股票价格跨度与流式单调对齐(MoChA)的工程全解

单调栈是一种在遍历序列时**让栈内元素始终保持单调(递增或递减)顺序**的栈变体。它表面上只是一个「压栈前先弹出破坏顺序的元素」的小技巧,本质上却是对「每个元素左右第一个不满足某顺序约束的邻居」这一反复出现的查询做 O(n) amortized 常数化复用的经典手法。本文从第一性原理出发,推导它的不变量与正确性,给出四个基础查询(下一个/上一个更大/更小元素)的统一实现,拆解直方图最大矩形、接雨…