- 常见三大算法:
- 动态规划dp
- 回溯backtracking(关键字所有、全部等等)
- 贪心(关键字最长、最多、最大等等)
动态规划的题目在求所有/全部解,或者最长、最多、最大时,一般不会让你求具体的解,而是让你求解的个数或者极值为多少;贪心同理。
而用回溯求所有/全部解时,一般是要求给出具体的解都有哪些)
- 二维矩阵遍历
- 用二维矩阵表示图:BFS——队列、DFS——递归或栈
- 队列和栈
- 二分查找
- 字符串
- container/list
- 哨兵头dummyHead,哨兵尾dummyTail
- 实现一个链表
- 实现一个哈希表
- 链表 + map结合:LRU缓存等
- BFS(层序level遍历) —— 队列
- 锯齿形层序遍历 —— 栈
- DFS(前pre中in后post遍历)递归和迭代算法 —— 栈
- 归并排序
- 快速排序
- 堆排序
- 快速选择算法解决TopK
- container/heap
- 数据流的topK(703)
- 数组中的topK(215, 最小k个数)
- 堆排序
- 求中位数(4、295)
- 自建堆,主要是up和down的写法(215)