动态规划
?状态定义:????????
?????????设?dp?为大小 m×n?矩阵,其中?dp[i][j] 的值代表直到走到?(i,j) 的最小路径和
?转移方程:
????????走到当前单元格 (i,j)的最小路径和 = “从左方单元格 (i-1,j) 与 从上方单元格(i,j?1) 走来的 两个最小路径和中较小的 ” + 当前单元格值 grid[i][j] 。具体分为以下 4?种情况:
? ? ? ? 1、当左边和上边都不是矩阵边界时: 即当i != 0, j != 0时,dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j] ;
? ? ? ? 2、当只有左边是矩阵边界时: 只能从上面来,即当i = 0, j != 0时, dp[i][j] = dp[i][j - 1] + grid[i][j] ;
? ? ? ? 3、当只有上边是矩阵边界时: 只能从左面来,即当i!= 0, j = 0时, dp[i][j] = dp[i - 1][j] + grid[i][j] ;
? ? ? ? 4、当左边和上边都是矩阵边界时: 即当i = 0, j = 0时,其实就是起点, dp[i][j] = grid[i][j];