leetcode题目汇总-栈

  |  

摘要: 力扣上的栈的问题汇总

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings


本文总结一下力扣上 2000 题以内的关于栈的 73 道题。

栈是一种最基础的数据结构,本身是比较简单的,而且没什么变化,力扣上基于栈的数据结构设计只有5道题。变化比较多的是基于栈实现的各种算法:基于栈的模拟、基于栈的贪心、递归,以及各种应用场景:迭代器模式、语法解析和括号匹配。以上算法和场景在前面都有专门的梳理,可以看前面对应的链接。

算法层面非常重要的一块是单调栈,力扣上的题很多,而且可以抽象出一些单调栈的常见场景。

刷完这份题目列表,力扣上的栈的问题可以说刷爆了。



$1 基于栈的设计

(1) 设计-迭代器模式

1
https://chengzhaoxi.xyz/36531.html

281. 锯齿迭代器
173. 二叉搜索树迭代器
284. 顶端迭代器
1286. 字母组合迭代器
251. 展开二维向量
604. 迭代压缩字符串
341. 扁平化嵌套列表迭代器
1586. 二叉搜索树迭代器 II

(2) 设计-功能系统

1
https://chengzhaoxi.xyz/7591.html
题目 数据结构 索引结构
1381. 设计一个支持增量操作的栈 数组 无索引
716. 最大栈 链表 平衡树
155. 最小栈 双栈 无索引
895. 最大频率栈 桶+栈 哈希表
1172. 餐盘栈 桶+栈 平衡树

$2 基于栈的贪心

1
https://chengzhaoxi.xyz/4d72780d.html

316. 去除重复字母
1081. 不同字符的最小子序列
402. 移掉K位数字
321. 拼接最大数
738. 单调递增的数字
649. Dota2 参议院

$3 基于栈的模拟

1
https://chengzhaoxi.xyz/1770ee2.html

103. 二叉树的锯齿形层次遍历
735. 行星碰撞
1047. 删除字符串中的所有相邻重复项
1209. 删除字符串中的所有相邻重复项 II
636. 函数的独占时间
1441. 用栈操作构建数组
1544. 整理字符串
682. 棒球比赛

$4 单调栈

1
https://chengzhaoxi.xyz/43789.html

132模式

最大宽度坡

单调栈维护贪心

保存值而不是下标的单调栈

$5 递归

1
https://chengzhaoxi.xyz/c6654282.html

87. 扰乱字符串
761. 特殊的二进制序列
776. 拆分二叉搜索树
1003. 检查替换后的词是否有效
1190. 反转每对括号间的子串
544. 输出比赛匹配对
面试题 08.05. 递归乘法
779. 第K个语法符号
面试题 08.06. 汉诺塔问题

$6 语法解析和表达式求值

1
https://chengzhaoxi.xyz/27231.html

1087. 字母切换
1096. 花括号展开 II
856. 括号的分数
1021. 删除最外层的括号
1190. 反转每对括号间的子串
761. 特殊的二进制序列

$7 括号匹配

1
https://chengzhaoxi.xyz/22799.html

20. 有效的括号
678. 有效的括号字符串
32. 最长有效括号
22. 括号生成
1111. 有效括号的嵌套深度


Share