单调栈
c葱c
这个作者很懒,什么都没留下…
展开
-
leetcode 84.柱状图中最大的矩形
十分类似,解释在注释中。原创 2023-05-13 09:37:22 · 30 阅读 · 0 评论 -
leetcode 42. 接雨水
20 和 30 取一个最小值,然后 20 - 20 = 0,所以面积也为0。所以加入或者不加入,都是一样的。原创 2023-05-12 11:58:14 · 30 阅读 · 0 评论 -
leetcode 503.下一个更大元素II
我一开始的想法有误区,我想的是走到了最后一个再重新置回 0。但是这样就很难判断到底什么时候循环结束。这里使用的方法是 1. 循环的长度是两倍的数组长度, 2. 然后对 i 取模。这里的区别是,数组是可以循环查找的,一样,用单调栈来求解。原创 2023-05-12 10:49:10 · 32 阅读 · 0 评论 -
leetcode 496. 下一个更大元素 I
关键是想到把 数组1 中的元素做映射,然后再遍历数组2 ,从数组2 中寻找。原创 2023-05-11 20:49:32 · 35 阅读 · 0 评论 -
leetcode 739. 每日温度
因为要寻找的是第一个比之前遍历过的元素更大的,如果当前元素比栈顶大,就弹出栈顶元素,并且更新结果数组。弹出的原因是已经找到比它大的元素了,留在栈中没有作用。由于小的元素都被弹出去了,所以栈是单调增的。栈里面是单调递增的,(由 栈顶 到 栈底 是单调增的。关键就是处理好栈顶元素和当前元素的大小关系。弹出小的元素,最后再将该元素本身加入栈中。如果小于或者等于,就直接加入栈中。如果大于就更新结果数组,然后。原创 2023-05-11 17:40:23 · 35 阅读 · 0 评论