栈
栈
全部标签
数据结构
数组
矩阵
链表
双向链表
栈 单调栈
队列
单调队列
堆(优先队列)
哈希表
字符串
字符串匹配
树
二叉树
二叉搜索树
最小生成树
图
有序集合
拓扑排序
最短路
强连通分量
欧拉回路
双连通分量
并查集
字典树
线段树
树状数组
后缀数组
算法
枚举
递归
分治
回溯
贪心
动态规划
排序
桶排序
计数排序
基数排序
归并排序
快速选择
二分查找
记忆化搜索
深度优先搜索
广度优先搜索
双指针
位运算
前缀和
计数
滑动窗口
状态压缩
哈希函数
滚动哈希
扫描线
其他
数学
数论
几何
博弈
模拟
组合数学
随机化
概率与统计
水塘抽样
拒绝采样
数据库
设计
数据流
脑筋急转弯
交互
迭代器
多线程
题号 | 标题 | 题解 | 标签 | 难度 | 力扣 |
---|---|---|---|---|---|
20 | 有效的括号 | [✓] | 栈 字符串 | 🟢 | 🀄️ 🔗 |
32 | 最长有效括号 | [✓] | 栈 字符串 动态规划 | 🔴 | 🀄️ 🔗 |
42 | 接雨水 | [✓] | 栈 数组 双指针 2+ | 🔴 | 🀄️ 🔗 |
71 | 简化路径 | [✓] | 栈 字符串 | 🟠 | 🀄️ 🔗 |
84 | 柱状图中最大的矩形 | [✓] | 栈 数组 单调栈 | 🔴 | 🀄️ 🔗 |
85 | 最大矩形 | [✓] | 栈 数组 动态规划 2+ | 🔴 | 🀄️ 🔗 |
94 | 二叉树的中序遍历 | [✓] | 栈 树 深度优先搜索 1+ | 🟢 | 🀄️ 🔗 |
114 | 二叉树展开为链表 | [✓] | 栈 树 深度优先搜索 2+ | 🟠 | 🀄️ 🔗 |
143 | 重排链表 | [✓] | 栈 递归 链表 1+ | 🟠 | 🀄️ 🔗 |
144 | 二叉树的前序遍历 | [✓] | 栈 树 深度优先搜索 1+ | 🟢 | 🀄️ 🔗 |
145 | 二叉树的后序遍历 | [✓] | 栈 树 深度优先搜索 1+ | 🟢 | 🀄️ 🔗 |
150 | 逆波兰表达式求值 | [✓] | 栈 数组 数学 | 🟠 | 🀄️ 🔗 |
155 | 最小栈 | [✓] | 栈 设计 | 🟠 | 🀄️ 🔗 |
173 | 二叉搜索树迭代器 | [✓] | 栈 树 设计 3+ | 🟠 | 🀄️ 🔗 |
224 | 基本计算器 | [✓] | 栈 递归 数学 1+ | 🔴 | 🀄️ 🔗 |
225 | 用队列实现栈 | [✓] | 栈 设计 队列 | 🟢 | 🀄️ 🔗 |
227 | 基本计算器 II | [✓] | 栈 数学 字符串 | 🟠 | 🀄️ 🔗 |
232 | 用栈实现队列 | [✓] | 栈 设计 队列 | 🟢 | 🀄️ 🔗 |
234 | 回文链表 | [✓] | 栈 递归 链表 1+ | 🟢 | 🀄️ 🔗 |
255 | 验证二叉搜索树的前序遍历序列 🔒 | 栈 树 二叉搜索树 4+ | 🟠 | 🀄️ 🔗 | |
272 | 最接近的二叉搜索树值 II 🔒 | 栈 树 深度优先搜索 4+ | 🔴 | 🀄️ 🔗 | |
316 | 去除重复字母 | [✓] | 栈 贪心 字符串 1+ | 🟠 | 🀄️ 🔗 |
321 | 拼接最大数 | 栈 贪心 数组 2+ | 🔴 | 🀄️ 🔗 | |
331 | 验证二叉树的前序序列化 | 栈 树 字符串 1+ | 🟠 | 🀄️ 🔗 | |
341 | 扁平化嵌套列表迭代器 | 栈 树 深度优先搜索 3+ | 🟠 | 🀄️ 🔗 | |
364 | 嵌套列表加权和 II 🔒 | 栈 深度优先搜索 广度优先搜索 | 🟠 | 🀄️ 🔗 | |
385 | 迷你语法分析器 | 栈 深度优先搜索 字符串 | 🟠 | 🀄️ 🔗 | |
388 | 文件的最长绝对路径 | 栈 深度优先搜索 字符串 | 🟠 | 🀄️ 🔗 | |
394 | 字符串解码 | [✓] | 栈 递归 字符串 | 🟠 | 🀄️ 🔗 |
402 | 移掉 K 位数字 | 栈 贪心 字符串 1+ | 🟠 | 🀄️ 🔗 | |
426 | 将二叉搜索树转化为排序的双向链表 🔒 | [✓] | 栈 树 深度优先搜索 4+ | 🟠 | 🀄️ 🔗 |
439 | 三元表达式解析器 🔒 | 栈 递归 字符串 | 🟠 | 🀄️ 🔗 | |
445 | 两数相加 II | [✓] | 栈 链表 数学 | 🟠 | 🀄️ 🔗 |
456 | 132 模式 | 栈 数组 二分查找 2+ | 🟠 | 🀄️ 🔗 | |
484 | 寻找排列 🔒 | 栈 贪心 数组 1+ | 🟠 | 🀄️ 🔗 | |
488 | 祖玛游戏 | 栈 广度优先搜索 记忆化搜索 2+ | 🔴 | 🀄️ 🔗 | |
496 | 下一个更大元素 I | [✓] | 栈 数组 哈希表 1+ | 🟢 | 🀄️ 🔗 |
503 | 下一个更大元素 II | [✓] | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 |
536 | 从字符串生成二叉树 🔒 | 栈 树 深度优先搜索 2+ | 🟠 | 🀄️ 🔗 | |
581 | 最短无序连续子数组 | 栈 贪心 数组 3+ | 🟠 | 🀄️ 🔗 | |
589 | N 叉树的前序遍历 | [✓] | 栈 树 深度优先搜索 | 🟢 | 🀄️ 🔗 |
590 | N 叉树的后序遍历 | [✓] | 栈 树 深度优先搜索 | 🟢 | 🀄️ 🔗 |
591 | 标签验证器 | 栈 字符串 | 🔴 | 🀄️ 🔗 | |
636 | 函数的独占时间 | 栈 数组 | 🟠 | 🀄️ 🔗 | |
654 | 最大二叉树 | [✓] | 栈 树 数组 3+ | 🟠 | 🀄️ 🔗 |
678 | 有效的括号字符串 | [✓] | 栈 贪心 字符串 1+ | 🟠 | 🀄️ 🔗 |
682 | 棒球比赛 | [✓] | 栈 数组 模拟 | 🟢 | 🀄️ 🔗 |
716 | 最大栈 🔒 | 栈 设计 链表 2+ | 🔴 | 🀄️ 🔗 | |
726 | 原子的数量 | 栈 哈希表 字符串 1+ | 🔴 | 🀄️ 🔗 | |
735 | 小行星碰撞 | [✓] | 栈 数组 模拟 | 🟠 | 🀄️ 🔗 |
736 | Lisp 语法解析 | 栈 递归 哈希表 1+ | 🔴 | 🀄️ 🔗 | |
739 | 每日温度 | [✓] | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 |
768 | 最多能完成排序的块 II | 栈 贪心 数组 2+ | 🔴 | 🀄️ 🔗 | |
769 | 最多能完成排序的块 | 栈 贪心 数组 2+ | 🟠 | 🀄️ 🔗 | |
770 | 基本计算器 IV | 栈 递归 哈希表 2+ | 🔴 | 🀄️ 🔗 | |
772 | 基本计算器 III 🔒 | [✓] | 栈 递归 数学 1+ | 🔴 | 🀄️ 🔗 |
844 | 比较含退格的字符串 | [✓] | 栈 双指针 字符串 1+ | 🟢 | 🀄️ 🔗 |
853 | 车队 | 栈 数组 排序 1+ | 🟠 | 🀄️ 🔗 | |
856 | 括号的分数 | 栈 字符串 | 🟠 | 🀄️ 🔗 | |
880 | 索引处的解码字符串 | [✓] | 栈 字符串 | 🟠 | 🀄️ 🔗 |
895 | 最大频率栈 | 栈 设计 哈希表 1+ | 🔴 | 🀄️ 🔗 | |
897 | 递增顺序搜索树 | 栈 树 深度优先搜索 2+ | 🟢 | 🀄️ 🔗 | |
901 | 股票价格跨度 | [✓] | 栈 设计 数据流 1+ | 🟠 | 🀄️ 🔗 |
907 | 子数组的最小值之和 | 栈 数组 动态规划 1+ | 🟠 | 🀄️ 🔗 | |
921 | 使括号有效的最少添加 | [✓] | 栈 贪心 字符串 | 🟠 | 🀄️ 🔗 |
936 | 戳印序列 | 栈 贪心 队列 1+ | 🔴 | 🀄️ 🔗 | |
946 | 验证栈序列 | [✓] | 栈 数组 模拟 | 🟠 | 🀄️ 🔗 |
962 | 最大宽度坡 | [✓] | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 |
975 | 奇偶跳 | 栈 数组 动态规划 2+ | 🔴 | 🀄️ 🔗 | |
1003 | 检查替换后的词是否有效 | 栈 字符串 | 🟠 | 🀄️ 🔗 | |
1006 | 笨阶乘 | 栈 数学 模拟 | 🟠 | 🀄️ 🔗 | |
1008 | 前序遍历构造二叉搜索树 | [✓] | 栈 树 二叉搜索树 3+ | 🟠 | 🀄️ 🔗 |
1019 | 链表中的下一个更大节点 | 栈 数组 链表 1+ | 🟠 | 🀄️ 🔗 | |
1021 | 删除最外层的括号 | [✓] | 栈 字符串 | 🟢 | 🀄️ 🔗 |
1047 | 删除字符串中的所有相邻重复项 | [✓] | 栈 字符串 | 🟢 | 🀄️ 🔗 |
1063 | 有效子数组的数目 🔒 | 栈 数组 单调栈 | 🔴 | 🀄️ 🔗 | |
1081 | 不同字符的最小子序列 | [✓] | 栈 贪心 字符串 1+ | 🟠 | 🀄️ 🔗 |
1096 | 花括号展开 II | 栈 广度优先搜索 字符串 1+ | 🔴 | 🀄️ 🔗 | |
1106 | 解析布尔表达式 | [✓] | 栈 递归 字符串 | 🔴 | 🀄️ 🔗 |
1111 | 有效括号的嵌套深度 | 栈 字符串 | 🟠 | 🀄️ 🔗 | |
1124 | 表现良好的最长时间段 | 栈 数组 哈希表 2+ | 🟠 | 🀄️ 🔗 | |
1130 | 叶值的最小代价生成树 | 栈 贪心 数组 2+ | 🟠 | 🀄️ 🔗 | |
1172 | 餐盘栈 | 栈 设计 哈希表 1+ | 🔴 | 🀄️ 🔗 | |
1190 | 反转每对括号间的子串 | [✓] | 栈 字符串 | 🟠 | 🀄️ 🔗 |
1209 | 删除字符串中的所有相邻重复项 II | 栈 字符串 | 🟠 | 🀄️ 🔗 | |
1214 | 查找两棵二叉搜索树之和 🔒 | 栈 树 深度优先搜索 4+ | 🟠 | 🀄️ 🔗 | |
1249 | 移除无效的括号 | 栈 字符串 | 🟠 | 🀄️ 🔗 | |
1265 | 逆序打印不可变链表 🔒 | 栈 递归 链表 1+ | 🟠 | 🀄️ 🔗 | |
1381 | 设计一个支持增量操作的栈 | [✓] | 栈 设计 数组 | 🟠 | 🀄️ 🔗 |
1441 | 用栈操作构建数组 | [✓] | 栈 数组 模拟 | 🟠 | 🀄️ 🔗 |
1472 | 设计浏览器历史记录 | [✓] | 栈 设计 数组 3+ | 🟠 | 🀄️ 🔗 |
1475 | 商品折扣后的最终价格 | [✓] | 栈 数组 单调栈 | 🟢 | 🀄️ 🔗 |
1504 | 统计全 1 子矩形 | 栈 数组 动态规划 2+ | 🟠 | 🀄️ 🔗 | |
1526 | 形成目标数组的子数组最少增加次数 | 栈 贪心 数组 2+ | 🔴 | 🀄️ 🔗 | |
1541 | 平衡括号字符串的最少插入次数 | 栈 贪心 字符串 | 🟠 | 🀄️ 🔗 | |
1544 | 整理字符串 | 栈 字符串 | 🟢 | 🀄️ 🔗 | |
1574 | 删除最短的子数组使剩余数组有序 | [✓] | 栈 数组 双指针 2+ | 🟠 | 🀄️ 🔗 |
1586 | 二叉搜索树迭代器 II 🔒 | 栈 树 设计 3+ | 🟠 | 🀄️ 🔗 | |
1597 | 根据中缀表达式构造二叉表达式树 🔒 | 栈 树 字符串 1+ | 🔴 | 🀄️ 🔗 | |
1598 | 文件夹操作日志搜集器 | 栈 数组 字符串 | 🟢 | 🀄️ 🔗 | |
1614 | 括号的最大嵌套深度 | 栈 字符串 | 🟢 | 🀄️ 🔗 | |
1628 | 设计带解析函数的表达式树 🔒 | 栈 树 设计 3+ | 🟠 | 🀄️ 🔗 | |
1653 | 使字符串平衡的最少删除次数 | 栈 字符串 动态规划 | 🟠 | 🀄️ 🔗 | |
1673 | 找出最具竞争力的子序列 | 栈 贪心 数组 1+ | 🟠 | 🀄️ 🔗 | |
1700 | 无法吃午餐的学生数量 | 栈 队列 数组 1+ | 🟢 | 🀄️ 🔗 | |
1717 | 删除子字符串的最大得分 | 栈 贪心 字符串 | 🟠 | 🀄️ 🔗 | |
1756 | 设计最近使用(MRU)队列 🔒 | 栈 设计 树状数组 3+ | 🟠 | 🀄️ 🔗 | |
1762 | 能看到海景的建筑物 🔒 | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 | |
1776 | 车队 II | 栈 数组 数学 2+ | 🔴 | 🀄️ 🔗 | |
1793 | 好子数组的最大分数 | 栈 数组 双指针 2+ | 🔴 | 🀄️ 🔗 | |
1856 | 子数组最小乘积的最大值 | 栈 数组 前缀和 1+ | 🟠 | 🀄️ 🔗 | |
1896 | 反转表达式值的最少操作次数 | 栈 数学 字符串 1+ | 🔴 | 🀄️ 🔗 | |
1910 | 删除一个字符串中所有出现的给定子字符串 | 栈 字符串 模拟 | 🟠 | 🀄️ 🔗 | |
1944 | 队列中可以看到的人数 | 栈 数组 单调栈 | 🔴 | 🀄️ 🔗 | |
1950 | 所有子数组最小值中的最大值 🔒 | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 | |
1963 | 使字符串平衡的最小交换次数 | [✓] | 栈 贪心 双指针 1+ | 🟠 | 🀄️ 🔗 |
1996 | 游戏中弱角色的数量 | 栈 贪心 数组 2+ | 🟠 | 🀄️ 🔗 | |
2000 | 反转单词前缀 | 栈 双指针 字符串 | 🟢 | 🀄️ 🔗 | |
2019 | 解出数学表达式的学生分数 | 栈 记忆化搜索 数组 3+ | 🔴 | 🀄️ 🔗 | |
2030 | 含特定字母的最小子序列 | 栈 贪心 字符串 1+ | 🔴 | 🀄️ 🔗 | |
2104 | 子数组范围和 | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 | |
2116 | 判断一个括号字符串是否有效 | 栈 贪心 字符串 | 🟠 | 🀄️ 🔗 | |
2130 | 链表最大孪生和 | [✓] | 栈 链表 双指针 | 🟠 | 🀄️ 🔗 |
2197 | 替换数组中的非互质数 | 栈 数组 数学 1+ | 🔴 | 🀄️ 🔗 | |
2211 | 统计道路上的碰撞次数 | 栈 字符串 模拟 | 🟠 | 🀄️ 🔗 | |
2216 | 美化数组的最少删除数 | 栈 贪心 数组 | 🟠 | 🀄️ 🔗 | |
2254 | 设计视频共享平台 🔒 | 栈 设计 哈希表 1+ | 🔴 | 🀄️ 🔗 | |
2281 | 巫师的总力量和 | 栈 数组 前缀和 1+ | 🔴 | 🀄️ 🔗 | |
2282 | 在一个网格中可以看到的人数 🔒 | 栈 数组 矩阵 1+ | 🟠 | 🀄️ 🔗 | |
2289 | 使数组按非递减顺序排列 | 栈 数组 链表 1+ | 🟠 | 🀄️ 🔗 | |
2296 | 设计一个文本编辑器 | 栈 设计 链表 3+ | 🔴 | 🀄️ 🔗 | |
2297 | 跳跃游戏 VIII 🔒 | 栈 图 数组 3+ | 🟠 | 🀄️ 🔗 | |
2334 | 元素值大于变化阈值的子数组 | 栈 并查集 数组 1+ | 🔴 | 🀄️ 🔗 | |
2345 | 寻找可见山的数量 🔒 | 栈 数组 排序 1+ | 🟠 | 🀄️ 🔗 | |
2355 | 你能拿走的最大图书数量 🔒 | 栈 数组 动态规划 1+ | 🔴 | 🀄️ 🔗 | |
2375 | 根据模式串构造最小数字 | 栈 贪心 字符串 1+ | 🟠 | 🀄️ 🔗 | |
2390 | 从字符串中移除星号 | [✓] | 栈 字符串 模拟 | 🟠 | 🀄️ 🔗 |
2434 | 使用机器人打印字典序最小的字符串 | 栈 贪心 哈希表 1+ | 🟠 | 🀄️ 🔗 | |
2454 | 下一个更大元素 IV | 栈 数组 二分查找 3+ | 🔴 | 🀄️ 🔗 | |
2487 | 从链表中移除节点 | 栈 递归 链表 1+ | 🟠 | 🀄️ 🔗 | |
2589 | 完成所有任务的最少时间 | 栈 贪心 数组 2+ | 🔴 | 🀄️ 🔗 | |
2617 | 网格图中最少访问的格子数 | 栈 广度优先搜索 并查集 5+ | 🔴 | 🀄️ 🔗 | |
2645 | 构造有效字符串的最少插入数 | 栈 贪心 字符串 1+ | 🟠 | 🀄️ 🔗 | |
2696 | 删除子串后的字符串最小长度 | [✓] | 栈 字符串 模拟 | 🟢 | 🀄️ 🔗 |
2736 | 最大和查询 | 栈 树状数组 线段树 4+ | 🔴 | 🀄️ 🔗 | |
2751 | 机器人碰撞 | 栈 数组 排序 1+ | 🔴 | 🀄️ 🔗 | |
2764 | 数组是否表示某二叉树的前序遍历 🔒 | 栈 树 深度优先搜索 1+ | 🟠 | 🀄️ 🔗 | |
2813 | 子序列最大优雅度 | 栈 贪心 数组 3+ | 🔴 | 🀄️ 🔗 | |
2816 | 翻倍以链表形式表示的数字 | 栈 链表 数学 | 🟠 | 🀄️ 🔗 | |
2818 | 操作使得分最大 | 栈 贪心 数组 3+ | 🔴 | 🀄️ 🔗 | |
2832 | 每个元素为最大值的最大范围 🔒 | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 | |
2863 | 最长半递减子数组的长度 🔒 | 栈 数组 排序 1+ | 🟠 | 🀄️ 🔗 | |
2865 | 美丽塔 I | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 | |
2866 | 美丽塔 II | 栈 数组 单调栈 | 🟠 | 🀄️ 🔗 | |
2940 | 找到 Alice 和 Bob 可以相遇的建筑 | 栈 树状数组 线段树 4+ | 🔴 | 🀄️ 🔗 | |
2945 | 找到最大非递减数组的长度 | 栈 队列 数组 4+ | 🔴 | 🀄️ 🔗 | |
3113 | 边界元素是最大值的子数组数目 | 栈 数组 二分查找 1+ | 🔴 | 🀄️ 🔗 | |
3170 | 删除星号以后字典序最小的字符串 | 栈 贪心 哈希表 2+ | 🟠 | 🀄️ 🔗 | |
3174 | 清除数字 | 栈 字符串 模拟 | 🟢 | 🀄️ 🔗 | |
3205 | 最大数组跳跃得分 I 🔒 | 栈 贪心 数组 2+ | 🟠 | 🀄️ 🔗 | |
3221 | 最大数组跳跃得分 II 🔒 | 栈 贪心 数组 1+ | 🟠 | 🀄️ 🔗 | |
3229 | 使数组等于目标数组所需的最少操作次数 | 栈 贪心 数组 2+ | 🔴 | 🀄️ 🔗 | |
剑指 Offer 30 | 包含min函数的栈 | [✓] | 栈 设计 | 🟢 | 🀄️ |
剑指 Offer 31 | 栈的压入、弹出序列 | [✓] | 栈 数组 模拟 | 🟠 | 🀄️ |
剑指 Offer 33 | 二叉搜索树的后序遍历序列 | [✓] | 栈 树 二叉搜索树 4+ | 🟠 | 🀄️ |
剑指 Offer 36 | 二叉搜索树与双向链表 | [✓] | 栈 树 深度优先搜索 4+ | 🟠 | 🀄️ |
剑指 Offer 6 | 从尾到头打印链表 | [✓] | 栈 递归 链表 1+ | 🟢 | 🀄️ |
剑指 Offer 9 | 用两个栈实现队列 | [✓] | 栈 设计 队列 | 🟢 | 🀄️ |
剑指 Offer II 25 | 链表中的两数相加 | [✓] | 栈 链表 数学 | 🟠 | 🀄️ |
剑指 Offer II 26 | 重排链表 | [✓] | 栈 递归 链表 1+ | 🟠 | 🀄️ |
剑指 Offer II 27 | 回文链表 | [✓] | 栈 递归 链表 1+ | 🟢 | 🀄️ |
剑指 Offer II 36 | 后缀表达式 | [✓] | 栈 数组 数学 | 🟠 | 🀄️ |
剑指 Offer II 37 | 小行星碰撞 | 栈 数组 模拟 | 🟠 | 🀄️ | |
剑指 Offer II 38 | 每日温度 | [✓] | 栈 数组 单调栈 | 🟠 | 🀄️ |
剑指 Offer II 39 | 直方图最大矩形面积 | [✓] | 栈 数组 单调栈 | 🔴 | 🀄️ |
剑指 Offer II 40 | 矩阵中最大的矩形 | [✓] | 栈 数组 动态规划 2+ | 🔴 | 🀄️ |
剑指 Offer II 52 | 展平二叉搜索树 | 栈 树 深度优先搜索 2+ | 🟢 | 🀄️ | |
剑指 Offer II 55 | 二叉搜索树迭代器 | [✓] | 栈 树 设计 3+ | 🟠 | 🀄️ |
面试题 02.06 | 回文链表 | 栈 递归 链表 1+ | 🟢 | 🀄️ | |
面试题 03.01 | 三合一 | 栈 设计 数组 | 🟢 | 🀄️ | |
面试题 03.02 | 栈的最小值 | 栈 设计 | 🟢 | 🀄️ | |
面试题 03.03 | 堆盘子 | 栈 设计 链表 | 🟠 | 🀄️ | |
面试题 03.04 | 化栈为队 | 栈 设计 队列 | 🟢 | 🀄️ | |
面试题 03.05 | 栈排序 | 栈 设计 单调栈 | 🟠 | 🀄️ | |
面试题 16.16 | 部分排序 | 栈 贪心 数组 3+ | 🟠 | 🀄️ | |
面试题 16.26 | 计算器 | 栈 数学 字符串 | 🟠 | 🀄️ | |
面试题 17.12 | BiNode | 栈 树 深度优先搜索 3+ | 🟢 | 🀄️ | |
面试题 17.21 | 直方图的水量 | 栈 数组 双指针 2+ | 🔴 | 🀄️ |