Skip to content

Latest commit

 

History

History
33 lines (18 loc) · 2.99 KB

栈与队列.md

File metadata and controls

33 lines (18 loc) · 2.99 KB

栈与队列

栈的基础知识:数据结构-栈

队列基础知识:数据结构-队列

相关题目

232. 用栈实现队列

225. 用队列实现栈

155. 最小栈

20. 有效的括号

1047. 删除字符串中的所有相邻重复项

150. 逆波兰表达式求值

239. 滑动窗口最大值

347. 前 K 个高频元素

总结

是我们平时开发中都常常遇到的一种数据结构。如:js报错时,浏览器中看到的错误调用栈。我们需要利用其核心后进先出的特点,来判断栈顶(即出栈元素)和即将入栈元素之间是否存在一定关系?来做求解。如上面的正确的括号问题逆波兰表达式求值删除字符串中的所有相邻重复项问题都是类似的思路。

队列的特点是先进先出。在上述的单调队列题目中239. 滑动窗口最大值,我们需要注意pushpop方法和传统实现的区别。

  • push(value):如果push的元素value大于入口元素的数值,那么就将队列出口的元素弹出,直到push元素的数值小于等于队列入口元素的数值为止

  • pop(value):如果窗口移除的元素value等于单调队列的出口元素,那么队列弹出元素,否则不用任何操作

其实核心就是保持队列的单调性,注意不同的题目,实现的push和pop方法可能不一致,这并不是固定的一种实现方式,但终旨是一样的。