进阶算法-动态规划
动态规划算法 实现基本步骤4步(以不同路径题目为例):
- 确定状态表示:令
dp[i][j] 是到达 i, j 最多路径; - 划分最优子结构:路径总和
dp[i][j] 可以拆分为 dp[i-1][j] 与 dp[i][j-1] 子路径; - 得出状态转移方程:
dp[i][j] = dp[i-1][j] + dp[i][j-1]; - 确定边界(base case,最简单情况):对于第一行
dp[0][j],或者第一列 dp[i][0],由于都是在边界,所以只能为 1。
1、不同路径
2、最短路径