1 class Solution {
2 public int minPathSum(int[][] grid) {
3 if(grid == null) return 0;
4 int row = grid.length;
5 int col = grid[0].length;
6 int[][] res = new int[row][col];
7 res[0][0] = grid[0][0];
8 for(int i = 0; i < row; i++) {
9 for(int j = 0; j < col; j++) {
10 if(i == 0 && j == 0) {
11 continue;
12 }else if(i - 1 < 0) {
13 res[i][j] = res[i][j-1] + grid[i][j];
14 }else if(j - 1 < 0) {
15 res[i][j] = res[i-1][j] + grid[i][j];
16 }else {
17 res[i][j] = grid[i][j] + Math.min(res[i][j-1], res[i-1][j]);
18 }
19 }
20 }
21 return res[row-1][col-1];
22
23 }
24 }