深度优先搜索BFS VS 广度优先搜索
DFS 算法就是回溯算法,BFS 相对 DFS 的最主要的区别是:BFS 找到的路径一定是最短的,但代价就是空间复杂度可能比 DFS 大很多。
递归灵魂三问
labuladong 告诉你,遇到任何递归型的问题,无非就是灵魂三问:
1、这个函数是干嘛的?
2、这个函数参数中的变量是什么的是什么?
3、得到函数的递归结果,你应该干什么?
动态规划
题型及核心思想
- 解决最优问题,求最值
- 穷举
动态规划特点
- 重叠子问题
- 状态转移方程**(最关键)**
- 最优子结构
解题套路
- 明确状态 状态是会变的东西:函数的参数 或者 数组的索引
- 明确选择 三张人民币 1 5 10 选最大的
- 明确 dp 函数/数组的定义
- 明确 base case