- 栈、队列:
-
堆:
-
贪心算法
-
排序
-
位运算
-
树
-
dfs:
-
三种策略:
-
前序
-
中序:
-
特殊的:二叉搜索树的中序遍历是一个递增数组。
-
后序
-
实现方式:
-
递归
-
迭代
-
bfs
-
并查集
-
图
-
设计
-
拓扑排序
-
字典树
-
树状数组
-
线段树
-
二叉搜索树
-
递归
-
脑筋急转弯
-
记忆化
-
极小化极大
-
蓄水池抽样
-
几何
-
无序Map
-
has是检查有没有这个key。
-
查找类的题目非常适合用map,因为其查找时间为O(1)。原因是:底层实现是由hash数据结构实现,数组加上链表,是通过key值来计算hash值,然后将hash值映射为数组的索引值,实现数组的O(1)查找(通过索引值)。
-
数组
-
哈希表
-
链表
-
dummy节点的作用
-
作为新链表的头节点。
-
解决链表头部的极端情况。
-
不能遍历两遍的时候就考虑使用双指针,相当于同时遍历。
-
数学
-
双指针
-
一般会是三个值,然后逼近一个值。需要用到排序。
-
字符串
-
sliding window:双指针滑窗。左指针左右滑动,右指针左右滑动。
-
二分查找
-
分治算法
-
动态规划
-
回溯算法
-
Radom
-
Rejection Sampling
-
Sliding Window
-
Ordered Map
-
Line Sweep