题意:
解答:
和上题动态规划一样 将问题化简为子问题
本题就是 dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1])+dp[i][j];
边界情况为 最短路径之和
代码:
class Solution {
public int minPathSum(int[][] grid) {
int m=grid.length;
int n=grid[0].length;
for(int i=1;i<m;i++) grid[i][0]+=grid[i-1][0];
for(int j=1;j<n;j++) grid[0][j]+=grid[0][j-1];
for(int i=1;i<m;i++)
for(int j=1;j<n;j++)
grid[i][j]=grid[i][j]+Math.min(grid[i-1][j],grid[i][j-1]);
return grid[m-1][n-1];
}
}