readme

第一部分 优选基础算法

双指针
滑动窗口
二分查找
前缀和
位运算
模拟
分治-归并
链表
哈希表
字符串

队列+宽搜
优先级队列
BFS 解决FloodFill算法
BFS 解决最短路问题
多源 BFS
BFS 解决拓扑排序

学到「分治专题」的时候,可以转移去看「递归、搜索和回溯」。因为这个专题里面会系统的讲解「递归」,以及「递归相关」的算法;

第二部分 递归、搜索和回溯

  1. 递归算法
  2. 搜索算法(主要是深搜)
  3. 回溯与剪枝
  4. FloodFill 算法
  5. 记忆化搜索

第三部分 动态规划

「动态规划精品课」的学习穿插在整个学习过程的「始终」。因为动态规划较难,可能用力去学一周或者两周也很难有大收获。最好的方式就是在学习其他算法的期间,「每天」做上一两道动态规划的题,「循序渐进」的学习。

  1. 斐波那契数列模型
  2. 路径问题
  3. 简单多状态dp问题
  4. 子数组系列
  5. 子序列问题
  6. 回文串问题
  7. 两个数组的dp问题
  8. 01背包问题
  9. 完全背包问题
  10. 二维费用的背包问题
  11. 似包非包
  12. 卡特兰数

第四部分 贪心算法