
单调栈
sanctuary_wu
这个作者很懒,什么都没留下…
展开
-
LeetCode 503 下一个更大元素II(单调栈)
题目大意题目链接给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大...原创 2020-05-07 11:42:51 · 238 阅读 · 0 评论 -
LeetCode 496 下一个更大元素(单调栈)
题目题目链接给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = ...原创 2020-05-07 10:14:41 · 232 阅读 · 0 评论 -
LeetCode 739 每日温度(单调栈)
题目描述题目链接根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000...原创 2020-05-07 09:44:23 · 238 阅读 · 0 评论 -
冷嘲热讽(单调栈)
题目大意题目链接JM自从学习了约瑟夫问题,就特别感兴趣,研究了很久。设计了一个类似的游戏,取名叫做冷嘲热讽。总共有N个人参与游戏,一字排开,从左往右编号1,2,…,N,每一个人初始有一个能力值Ai 。每一轮,每一个人同时向嘲讽右边的人,如果被嘲讽的能力值比嘲讽的人大(i < j Ai < Aj),则被嘲讽的人淘汰出局。一轮结束,没被淘汰的人向左靠齐,调整站位,重新编号1,2,...原创 2020-05-05 10:47:13 · 223 阅读 · 0 评论 -
洛谷P4147 玉蟾宫(单调栈解决)
题目题目链接题目背景有一天,小猫 rainbow 和 freda 来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。题目描述这片土地被分成 N\times MN×M 个格子,每个格子里写着 ‘R’ 或者 ‘F’,R 代表这块土地被赐予了 rainbow,F 代表这块土地被赐予了 freda。现在 freda 要在这里卖萌。。。它要找一块矩形土地,要求这...原创 2020-05-04 20:27:43 · 568 阅读 · 0 评论 -
单调栈(模板及相应例题)
单调栈可以存一段元素每个之前第一个比它小的元素的下标,没有的置为-1。以下是单调递增栈的模板,即栈中的元素为单调递增的。在入栈之前记录当前元素左边第一个比他小的元素的下标for(int i = 1 ; i <= n;i++){ while(st.size() && a[st.top()] >= a[i]) st.pop(); if(st....原创 2020-05-04 16:27:01 · 489 阅读 · 0 评论 -
LeetCode 接雨水(单调栈,双指针,DP)
题目链接给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6解题思路本题对雨水的计算方法有两大类一种是竖着计算即按照列,另...原创 2020-05-04 16:24:36 · 223 阅读 · 0 评论 -
矩形柱中最大的矩形(单调栈遍历一遍解决)
题目链接题目大意给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。解题思路:首先考虑我们怎么求出最大的矩形面积,对于每一列来说我们分别向左右延伸...原创 2020-05-04 13:54:08 · 306 阅读 · 0 评论 -
仰视奶牛(单调栈模板题)
题目描述题目链接约翰有N头奶牛,编号为1到N。现在这N头奶牛按编号从小到大的顺序站成了一排,其中奶牛 i 的身高为Hi。现在,每头奶牛都向它的右侧望向那些编号较大的奶牛,对于奶牛 i 如果存在一头奶牛 j 满足 i<j 并且 Hi<Hj,那么我们称奶牛 i 需要仰视奶牛 j。请你求出每头奶牛的最近仰视对象。输入格式第一行包含整数N。接下来N行,每行包含一个整数Hi,其中...原创 2020-05-04 11:40:36 · 791 阅读 · 0 评论