【A】1.3 双端队列

Java 1.0 中附带了一个Stack类,但是设计得很糟糕,更可取的是双端队列Deque。它不仅可以用作栈,还可用作队列。

栈通用接口 双端队列标准接口 队列通用接口 双端队列标准接口
push addFirst offer offerLast
pop removeFirst poll pollFirst
peek peekFirst peek peekFirst

从操作特性上来看,栈和队列都是⼀种“操作受限”的线性表。栈的应用场景有很多,例如函数调⽤、括号匹配、表达式求值等。常见的表达式有:

  • 前缀表达式,对应树的先序遍历,符合程序中调用函数的写法
  • 后缀表达式,对应树的后序遍历,适合用栈模拟的最近相关性
  • 中缀表达式,对应树的后序遍历,需要括号表示计算的优先级
刷题清单 备注
20.有效的括号 每个右括号只与最邻近的左括号匹配
1047. 删除字符串中的所有相邻重复项 考虑用Deque/StringBuilder/char[]模拟栈
155.最小栈 记录历史前缀最小值
150.逆波兰表达式求值 每个操作符只与最近两个操作数匹配
227.基本计算器 II 操作符需要比对邻近历史操作符的优先级

227.基本计算器 II

224.基本计算器

posted @ 2023-02-07 12:49  安如衫  阅读(16)  评论(0)    收藏  举报