![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调栈
文章平均质量分 68
单调栈
alone_yue
后端开发 算法 爱好健身打球游泳
展开
-
【Leetcode单调栈】单调栈深入总结
文章目录1.目录2.单调栈作用:2.单调栈代码示例:简介版:逻辑清晰版:1.目录2.单调栈作用:以o(n)的时间复杂度,找到数组内所有元素左边(右边)第一个比自己大(小)的元素(或下标)1.单调栈已经做了五道题了,别的都不多说,单调栈就一个作用,遇到需要这个作用的都想到单调栈,以o(n)的时间复杂度,找到数组内所有元素左边(右边)第一个比自己大(小)的元素(或下标)2.每日温度不说了就是找右边第一个比自己大的元素3.下一个更大元素I 下一个更大元素Ⅱ 这还用说吗,直接就是找右边第一个比自己原创 2021-10-12 17:20:24 · 98 阅读 · 1 评论 -
【Leetcode单调栈】84. 柱状图中最大的矩形(有跳跃式节省计算的dp优化双指针计算!!怎么想问题解决方案的思考!!)
文章目录Leetcode841.问题描述2.解决方案解法一:双指针(O(n^2)超时)(想问题解决方案的思考!!!!!!)解法二:动态规划(跳跃式节省计算的思路十分值得借鉴!!!!!)思路与思考:代码实现:解法三:单调栈思考:代码实现一:二次检查代码实现二:首尾插入0避免二次检查Leetcode841.问题描述2.解决方案解法一:双指针(O(n^2)超时)(想问题解决方案的思考!!!!!!)1.一看图基本就懂了,对于每一个柱子,包含这个柱子最大的矩形就是,左右第一比它小的柱子之间的区域,然后原创 2021-10-12 16:17:26 · 148 阅读 · 1 评论 -
【Leetcode单调栈】42. 接雨水(有dp优化双指针计算!!双指针,动态规划,单调栈!!)
文章目录Leetcode421.问题描述2.解决方案解法一:双指针(o(n^2)超时)解法二:动态规划(1)思路:(2)思考反思总结:(3)代码实现:解法三:单调栈(1)确定使用单调栈(2)实现难点:当栈顶==当前元素时的逻辑(3)实现难点:当栈顶<当前元素时,也就是凹槽的计算(4)代码实现:逻辑清晰版(5)代码实现:精简熟练版(建议复用!!)Leetcode421.问题描述2.解决方案解法一:双指针(o(n^2)超时)1.其实最直接的想法,一行一行或者一列一列的把雨水求出来并且相加就是原创 2021-10-12 11:57:57 · 152 阅读 · 1 评论 -
【Leetcode单调栈】503. 下一个更大元素 II(有以后都这么写的单调栈的更简洁写法!!代码可复用!!)
文章目录Leetcode5031.问题描述2.解决方案解法一:繁琐写法解法二:单调栈简洁写法(以后都这么写!!)Leetcode5031.问题描述2.解决方案1.这道题和【Leetcode单调栈】739. 每日温度(有关于单调栈类型题的深入理解概括!!)也几乎如出一辙。不同的时候本题要循环数组了。2.相信不少同学看到这道题,就想那我直接把两个数组拼接在一起,然后使用单调栈求下一个最大值不就行了!确实可以!将两个nums数组拼接在一起,使用单调栈计算出每一个元素的下一个最大值,最后再把结果集即r原创 2021-10-12 09:22:44 · 77 阅读 · 1 评论 -
【Leetcode单调栈】496. 下一个更大元素 I(单调栈加一点点哈希!!和上一题的单调栈一摸一样!!)
文章目录Leetcode4961.问题描述2.解决方案Leetcode4961.问题描述2.解决方案原创 2021-09-01 20:16:18 · 71 阅读 · 0 评论 -
【Leetcode单调栈】739. 每日温度(有关于单调栈类型题的深入理解概括!!)
文章目录Leetcode7391.问题描述2.解决方案解法一:暴力解法二:单调栈(1)单调栈概述(2)单调栈考虑的点(3)举例说明(4)代码实现Leetcode7391.问题描述2.解决方案解法一:暴力首先想到的当然是暴力解法,两层for循环,把至少需要等待的天数就搜出来了。时间复杂度是O(n^2)解法二:单调栈(1)单调栈概述1.我怎么能想到用单调栈呢? 什么时候用单调栈呢?---------->通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位原创 2021-10-11 18:09:57 · 99 阅读 · 1 评论