递归与栈
栈的基础知识
- 栈是一种 “先进后出” (FILO, First In Last Out) 的数据结构
栈的基本操作
LeetCode #⾯试题 03.04 化栈为队
- 利⽤两个栈来实现,⼀个输⼊栈、⼀个输出栈。
- 输⼊栈⽤于读⼊数据。当需要输出元素时,若输出栈为空,则将输⼊栈的所有元素
- 推送到输出栈,然后取栈顶元素;若输出栈⾮空,则输出栈顶即可。
LeetCode #682 棒球⽐赛
LeetCode #844 ⽐较含退格的字符串
LeetCode #946 验证栈序列
- 被出栈的元素只有两种可能:即将⼊栈的元素 和 当前栈顶的元素。
- 只需要关注出栈序列,分类讨论后模拟即可。
栈结构扩展应用
LeetCode #20 有效的括
LeetCode #1021 删除最外层的括号
LeetCode #1249 移除⽆效的括号
LeetCode #145 ⼆叉树的后序遍历
LeetCode #331 验证⼆叉树的前序序列化
LeetCode #227 基本计算器 II
智⼒发散题
LeetCode #636 函数的独占时间
LeetCode #636 函数的独占时间