单调栈:
1.402. 移掉K位数字:需要注意边界情况,去除完无字符返回”“,判断时不能有=号,栈内应该是不严格递增的。
2.316. 去除重复字母:需要借助哈希表来统计出现次数,并且标记是否已经存在于栈内。
3.84. 柱状图中最大的矩形,挺难的,针对每一个柱需要确定左右比它低的作为边界,正向遍历单调栈确定左边界,单调递增栈,存储下标,单调递增,left是栈顶元素;倒序遍历确定右边界
4.42. 接雨水,挺难的,非严格递减栈,入栈之后的上一个元素就是它的左边界,出栈的条件是当前元素比它小,将 栈顶元素弹出时计算,左边界为上一个元素,右边界为更小的元素。
单调队列:
1.239. 滑动窗口最大值,单调队列是头出。
2.剑指 Offer 59 - II. 队列的最大值,单调队列要用deque,并且有新元素时要从尾部开始比较弹出小于它的,然后push进去才能形成递减的队列。