![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈
文章平均质量分 96
leetcode 栈相关题目
Qin酱
这个人是个懒狗,什么都没有留下。
展开
-
栈解题思路
栈栈:栈(stack)又名堆栈,它是限定在表的一端进行插入和删除操作的线性表(后进先出)。这一端被称为栈顶,相对地,把另一端称为栈底。不含元素的空表称为空栈。英文stack先入后出的有序链表限制线性表中元素的插入删除只能在线性表的一端进行栈顶top、栈底bottom栈的运用子程序的调用处理递归调用表达式的转换与求值二叉树的遍历图形的深度优先(depth-first)搜索法栈的相关题目20. 有效的括号题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’原创 2020-08-19 11:23:46 · 478 阅读 · 0 评论 -
leetcode 5470. 平衡括号字符串的最少插入次数
5470. 平衡括号字符串的最少插入次数给你一个括号字符串 s ,它只包含字符 ‘(’ 和 ‘)’ 。一个括号字符串被称为平衡的当它满足:任何左括号 ‘(’ 必须对应两个连续的右括号 ‘))’ 。左括号 ‘(’ 必须在对应的连续两个右括号 ‘))’ 之前。比方说 “())”, “())(())))” 和 “(())())))” 都是平衡的, “)()”, “()))” 和 “(()))” 都是不平衡的。你可以在任意位置插入字符 ‘(’ 和 ‘)’ 使字符串平衡。请你返回让 s 平衡的最少插入次数原创 2020-08-09 10:31:39 · 313 阅读 · 0 评论 -
leetcode 946. 验证栈序列
946. 验证栈序列给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3), push(4), pop() -> 4,push(5), pop() -&原创 2020-08-19 11:17:33 · 257 阅读 · 0 评论 -
leetcode 739. 每日温度
739. 每日温度请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。如果不使用栈的方法,那么使原创 2020-07-29 14:50:45 · 146 阅读 · 0 评论 -
leetcode 402. 移掉K位数字
402. 移掉K位数字给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例 1 :输入: num = “1432219”, k = 3输出: “1219”解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = “10200”, k = 1输出: “200”解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能原创 2020-07-21 14:53:27 · 141 阅读 · 0 评论 -
leetcode 316. 去除重复字母
316. 去除重复字母给你一个仅包含小写字母的字符串,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入: “bcabc”输出: “abc”示例 2:输入: “cbacdcbc”输出: “acdb”用栈来存储最终返回的字符串,并维持字符串的最小字典序。每遇到一个字符,如果这个字符不存在于栈中,就需要将该字符压入栈中。但在压入之前,需要先将之后还会出现,并且字典序比当前字符小的栈顶字符移除,然后再将当前字符压入。原创 2020-07-21 13:51:31 · 498 阅读 · 0 评论 -
leetcode 150. 逆波兰表达式求值
150. 逆波兰表达式求值根据 逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: [“2”, “1”, “+”, “3”, “*”]输出: 9解释: 该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入: [“4”, “13”, “5”, “/”,原创 2020-07-30 11:25:52 · 104 阅读 · 0 评论 -
leetcode 42. 接雨水
42. 接雨水给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。第一种方法是循环遍历的方法:每次找到一个柱子,从其左右散开,寻找比其高的柱子的索引,找到之后,宽度就已经确定为两个索引之间的距离。此时的高度为两边边界柱子高度较小的那个减去当前索引的柱子高度。但是这种方法虽然能够解原创 2020-08-19 10:06:55 · 214 阅读 · 0 评论 -
leetcode 20. 有效的括号
20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true利用栈的思想原创 2020-05-29 12:36:13 · 126 阅读 · 0 评论 -
leetcode 394. 字符串解码
394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = “3[a]2[bc]”输出:“aaabcbc”示例原创 2020-07-31 18:24:40 · 162 阅读 · 0 评论 -
leetcode 85. 最大矩形
85. 最大矩形给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例:输入:[[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出: 6图像来自https://leetcode-cn.com/problems/maximal-rectangle/solution/cyu-yan-dan-diao-zhan-by-dud原创 2020-07-08 15:15:46 · 192 阅读 · 0 评论 -
leetcode 84. 柱状图中最大的矩形
84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10这道和接雨水有点像,但是真的难,开始的时候想到每一个列举单个最大面积,但是会超时。还是看一下列举面积的情况:首先选定一个原创 2020-07-08 14:26:37 · 286 阅读 · 0 评论