题目
思路
- 一眼好纯好纯的动态规划,没啥意思
- dp[i][j]指从arr[0][0]到arr[i][j]的最小路径
代码
public int minPathSum(int[][] grid) {
int[][] dp = new int[grid.length][grid[0].length];
dp[0][0]=grid[0][0];
//赋初始值
for(int i=1;i<grid.length;i++) dp[i][0]=dp[i-1][0]+grid[i][0];
for(int i=1;i<grid[0].length;i++) dp[0][i]=dp[0][i-1]+grid[0][i];
//每层赋值
for(int i=1;i<grid.length;i++){
for (int j=1;j<grid[0].length;j++){
dp[i][j] = grid[i][j]+Math.min(dp[i-1][j],dp[i][j-1]);
}
}
return dp[grid.length-1][grid[0].length-1];
}