Monotonic Stack & Queue
Monotonic Stack
@Grandyang: 单调栈的一大优势就是 线性的时间复杂度,所有的元素只会进栈一次,而且一旦出栈后就不会再进来了。
单调递增栈可以找到左起第一个比当前数字小的元素。
单调递减栈可以找到左起第一个比当前数字大的元素。
Tips: 栈中可以存下标,也可以直接存元素。
一亩三分地的讨论:什么时候会用到单调栈(递增递减栈)的思想
单调栈何时用: 为任意一个元素找左边和右边第一个比自己大/小的位置,用单调栈 用递增单调栈还是递减单调栈:递减栈会剔除波谷,留下波峰;递增栈剔除波峰,留下波谷
LeetCode Example
Monotonic Queue
A monotonic Queue is a data structure the elements from the front to the end is strictly either increasing or decreasing.
LeetCode Example
581 Shortest Unsorted Continuous Subarray
496 Next Greater Element I
503 Next Greater Element II
862 Shortest Subarray with Sum at Least K
84 Largest Rectangle in Histogram
122 Best Time to Buy and Sell Stock II
Resource, Reference and Reading List
Monotonic Queue Explained with LeetCode Problems by Li Yin
LeetCode Monotone Stack Summary 单调栈小结 by Grandyang
刷题笔记6(浅谈单调栈) by 法号桑菜
Last updated