美文网首页
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