时间/空间复杂度:
数组:
- 一维创建 new Array(n).fill(0)
- 二维创建 Array.from({ length: m }, () => Array(n).fill(0))
- 注意:fill不能填充对象
栈和队列:
- 数组新增 unshift push splice
- 数组删除 shift pop splice
- 栈 用pop和push进行增删数组(先进后出)
- 队列 用push和shift进行增删数组(先进先出)
- 链表增删开销小O(1),栈改查开销小O(1)
树:
- 二叉树的结构:数据域,左子结点,右子结点
- 二叉树的遍历:前中后层序四种遍历方式
字符串:
- 考点一般结合经典算法
双指针的应用:
- 有序+数组 === > 对撞指针
- 双指针: dummy节点的使用(处理掉头结点为空的边界问题)
- 链表就是指针(双,多指针)之间的变换
环形链表的应用
- 关键点:环形是如何成环的
DFS 和 BFS
- DFS 类似于树结构 =》 栈结构 (函数调用栈)
排序算法
动态规划
- 重叠子问题(---可以剪枝)
-
- 带备忘录的方法
- DP table