#

  • 栈是抽象的概念,栈可以用「数组」或者「链表」实现。
    • 使用「数组」实现的栈,删除和添加元素发生在数组的末尾;
    • 使用「链表」实现的栈,删除和添加元素发生在数组的开头;

# 题型一:基本的使用栈解决的问题

下面的问题非常基础,一定需要掌握:

题号 链接 题解
20 有效的括号 (opens new window)(简单)
71 简化路径 (opens new window)(中等)
155 最小栈 (opens new window)(简单) 文字题解 (opens new window)
225 用队列实现栈 (opens new window)(简单) 文字题解 (opens new window)
232 用栈实现队列 (opens new window)(简单) 文字题解 (opens new window)
946 946. 验证栈序列 (opens new window)(中等)

# 练习

题号 链接 题解
284 顶端迭代器 (opens new window)(中等)
341 扁平化嵌套列表迭代器 (opens new window)(中等)
946 验证栈序列 (opens new window)(中等)
1111 有效括号的嵌套深度 (opens new window)(中等) 文字题解 (opens new window)

# 题型二:单调栈

单调栈就是普通的栈,在使用的过程中恰好符合了「后进先出」,栈内元素单调的特点。「单调栈」和「单调队列」的问题通常来说很特殊,掌握例题和一些练习就可以了。

题号 链接 题解
84 柱状图中最大的矩形 (opens new window)(困难) 视频题解 (opens new window)文字题解 (opens new window)
42 接雨水 (opens new window)(困难) 文字题解 (opens new window)
739 每日温度 (opens new window)(中等) 文字题解 (opens new window)
316 去除重复字母 (opens new window)(困难) 文字题解 (opens new window)

说明

# 练习

序号 题目 题解
496 下一个更大元素 I(简单) (opens new window) 暴力解法、单调栈 (opens new window)
503 下一个更大元素 II(中等) (opens new window)
901 股票价格跨度(中等) (opens new window) LeetCode 第 901 题:股票价格跨度(单调栈) (opens new window)

作者:liweiwei1419 链接:https://suanfa8.com/stack 来源:算法吧 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Last Updated: 11/19/2024, 1:33:17 AM