美文网首页
LeetCode 刷题笔记2 (栈和队列)

LeetCode 刷题笔记2 (栈和队列)

作者: Grit_王祎 | 来源:发表于2020-01-17 14:52 被阅读0次

重要知识

1. Java stack

  • pop 拉出,push 压入栈顶,peek 看一眼栈顶(不改变元素),search查找(不改变元素,时间复杂度为n

2. java queue

  • 直接在谷歌搜索 queue Java
  • add 和 remove会抛出异常,offer 和 poll 会返回特定值

3. deque (双端队列)

  • Java操作见图即可

4. priority queue(优先队列)

  • 插入复杂度为 1,取出复杂度为log n
  • 底层实现的数据结构多样和复杂,用的是heap(堆),but 不一定够是二叉堆,也有可能是斐波那契堆,平衡二叉树(红黑树eg)

5. 总结

刷题技巧

  • 如果一个题目具有最近相关性的话就可以考虑用 stack 来解决(剥洋葱),讲究先来后到用queue
  • 栈和队列相关问题很多可以用双栈or双队列来解决
  • i,j枚举,两边扩散,中间聚拢的代码一定要写的滚瓜烂熟!!!
  • 优化代码主要是考虑前面的步骤是否有重复的,可以记录的
  • 所有滑动窗口的题目基本都是用双端队列解决

相关文章

网友评论

      本文标题:LeetCode 刷题笔记2 (栈和队列)

      本文链接:https://www.haomeiwen.com/subject/plrxzctx.html