单调栈
文章平均质量分 56
Khalil三省
coding
展开
-
【leetcode】85.最大矩形。 「单调栈」
给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例 1:输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出:6解释:最大矩形如上图所示。示例 2:输入:matrix = []输出:0示例 3:输入:matrix = [[“0”]]输出:0示例 4:输入:原创 2021-10-25 17:57:02 · 184 阅读 · 0 评论 -
【leetcode】316. 去除重复字母。 「单调栈」「哈希表」
给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。注意:该题与 1081 https://leetcode-cn.com/problems/smallest-subsequence-of-distinct-characters 相同示例 1:输入:s = “bcabc”输出:“abc”示例 2:输入:s = “cbacdcbc”输出:“acdb”提示:1 <= s.length <= 104原创 2021-10-24 18:10:10 · 2300 阅读 · 0 评论 -
【leetcode】84. 柱状图中最大的矩形。 「单调栈」
给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例 1:输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10示例 2:输入: heights = [2,4]输出: 4提示:1 <= heights.length <=10^50 <= heights[i] <= 10^4思路:我们可以先捋一下,要求最大的矩形,所以根原创 2021-10-24 15:34:10 · 2320 阅读 · 0 评论 -
【leetcode】739. 每日温度。 「单调栈」
请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出: [1,1,1,0]示例 3:输入: temperatures = [30,60,90]输出: [1,1,0]提示:1 &原创 2021-10-22 13:48:14 · 71 阅读 · 0 评论 -
【leetcode】503. 下一个更大元素Ⅱ 。 「单调栈」
给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 1 的下一个最大的数需要循环搜索,结果也是 2。注意: 输入数组的长度不会超过 10000。思路:本题也可以使原创 2021-10-21 21:52:23 · 101 阅读 · 0 评论 -
【leetcode】496. 下一个更大元素Ⅰ 。 「单调栈」「哈希表」
给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于 num1 中的数字 4 ,你无法在第二个数组中找到下一个更原创 2021-10-21 20:52:56 · 104 阅读 · 0 评论 -
【leetcode】42.接雨水。 「动态规划」「单调栈」「双指针」
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [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 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == height.length1 <= n <= 2 * 10原创 2021-10-21 18:01:09 · 189 阅读 · 0 评论