// 最小路径和 动态规划
// [
// [1,3,1],
// [1,5,1],
// [4,2,1],
// ]
public static int minPathSum(int[][] grid) {
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[0].length; j++) {
if(i==0&&j==0)continue;
// i=0,j=0直接进入下一个循环
// i=0,j-1的大小加当前的值
// j=0,i-1的大小加当前值
// 否则取i-1或j-1的最小值加当前值
else if(i==0)grid[i][j]=grid[i][j-1]+grid[i][j];
else if(j==0)grid[i][j]=grid[i-1][j]+grid[i][j];
else grid[i][j]=Math.min(grid[i-1][j], grid[i][j-1])+grid[i][j];
}
}
return grid[grid.length-1][grid[0].length-1];
}