undefined

思想

最大误区:做题只做一遍,至少做5遍

思想:

  1. 空间换时间
  2. 升维

数据结构

数组、链表、跳表

一、跳表

1
2
3
4
// 跳表
// 在原来的链表上加上多级索引
// 查询的时间复杂度 log(n)
// 但是在新增、删除的操作,需要重新排列索引,新增和删除时间复杂度 log(n)

题目:移动零、

盛水最多的容器:左右夹逼的方法

爬楼梯问题:找最近重复子问题(fibonacci数列)

三数之和(a+b=-c)、二数之和(a+b=target):哈希表、双指针左右推进

环形链表:快慢指针

二、双端队列、优先级队列

在工程中不建议使用 stack、queue,直接使用 dequeue 即可。

优先级队列有多种实现,一般的实现是 heap堆、bst、treap

题目:有效的括号:栈

最小栈

柱状图中最大的矩形:栈

滑动窗口:队列