单调栈

单调栈的特点就是从前往后遍历一遍O(n),使用栈存储信息,可以找到左边右边比它大的第一个数。

1.积雨水(42. Trapping Rain Water)单调递减遇到递增的处理情况

这题是求雨水总量,所以每次遇到打破单调栈规律的只要有左边界就可以积水;

相等的情况也可以进栈;

单调栈中存储下标,从而可以计算水平宽度。

2.直方图中的最大矩阵 单调递增遇到递减的处理情况

这题要注意当发现递减弹出元素后单调栈为空的情况,这时说明右边的都是大于栈顶元素的,直接乘以当前的下标;

为了处理特殊情况,最后一个元素也构成最大矩阵的话可以在最后加一个0。

3. 2D矩阵中的最大长方形

每一层都是一个直方图

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容