64.最小路径和
题目
给定一个包含非负整数的 m x n
网格 grid
,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明: 每次只能向下或者向右移动一步。
示例 1:
shell
输入: grid = [[1,3,1],[1,5,1],[4,2,1]]
输出: 7
解释:因为路径 1 → 3 → 1 → 1 → 1 的总和最小。
示例 2:
shell
输入: grid = [[1,2,3],[4,5,6]]
输出: 12
提示:
shell
m == grid.length
n == grid[i].length
1 <= m, n <= 200
0 <= grid[i][j] <= 200
解题
确定状态转移方程
js
dp(i, j)
// dp(i - 1, j), dp(i, j - 1)
dp(i, j) = Math.min(dp(i - 1, j), dp(i, j - 1)) + grid[i][j]
特殊解
当走第一行第一列第一个时,即 i == 0 && j == 0
,最小路径值为它自身值
js
dp(i, j) = grid[i][j]