class Solution {
public int minPathSum(int[][] grid) {
int m =grid.length, n = grid[0].length;
for(int i =0; i<m; i++){
for(int j=0; j<n; j++){
//保存0,0元素
if(i==0 && j==0) continue;
//第一行只往右走
else if(i ==0) grid[i][j] += grid[i][j-1];
//第一列只往下走
else if(j ==0) grid[i][j] += grid[i-1][j];
//否则取上方和左方比较小的数字
else grid[i][j] += Math.min(grid[i - 1][j], grid[i][j - 1]);
}
}
return grid[m-1][n-1];
}
}