Skip to content

Latest commit

 

History

History
210 lines (201 loc) · 54.2 KB

stack.md

File metadata and controls

210 lines (201 loc) · 54.2 KB

全部标签

数据结构

数组 矩阵 链表 双向链表 单调栈 队列 单调队列 堆(优先队列) 哈希表 字符串 字符串匹配 二叉树 二叉搜索树 最小生成树 有序集合 拓扑排序 最短路 强连通分量 欧拉回路 双连通分量 并查集 字典树 线段树 树状数组 后缀数组

算法

枚举 递归 分治 回溯 贪心 动态规划 排序 桶排序 计数排序 基数排序 归并排序 快速选择 二分查找 记忆化搜索 深度优先搜索 广度优先搜索 双指针 位运算 前缀和 计数 滑动窗口 状态压缩 哈希函数 滚动哈希 扫描线

其他

数学 数论 几何 博弈 模拟 组合数学 随机化 概率与统计 水塘抽样 拒绝采样 数据库 设计 数据流 脑筋急转弯 交互 迭代器 多线程


题号 标题 题解 标签 难度 力扣
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+ 🔴 🀄️