解题思路:
DP
提交代码:
class Solution {
public int minPathSum(int[][] grid) {
int row=grid.length,column=grid[0].length;
int[][] dp=new int[row][column];
// initialize the first row and the column
dp[0][0]=grid[0][0];
for(int i=1;i<column;i++)
dp[0][i]=dp[0][i-1]+grid[0][i];
for(int i=1;i<row;i++)
dp[i][0]=dp[i-1][0]+grid[i][0];
for(int i=1;i<row;i++) {
for(int j=1;j<column;j++) {
dp[i][j]=Math.min(dp[i-1][j], dp[i][j-1])+grid[i][j];
}
}
return dp[row-1][column-1];
}
}
运行结果: