题目链接:
力扣https://leetcode-cn.com/problems/minimum-path-sum/
【分析】一道简单的dp题,转移方程为dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]),需要注意处理一下i和j为1的情况。
class Solution {
public int minPathSum(int[][] grid) {
int m = grid.length, n = grid[0].length;
int[][] dp = new int[m + 1][n + 1];
for(int i = 1; i <= m; ++i){
for(int j = 1; j <= n; ++j){
if(i == 1){
dp[i][j] = dp[i][j - 1] + grid[i - 1][j - 1];
}else if(j == 1){
dp[i][j] = dp[i - 1][j] + grid[i - 1][j - 1];
}else{
dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + grid[i - 1][j - 1];
}
}
}
return dp[m][n];
}
}