Minimum Path Sum

来源:互联网 发布:酒店前台收银软件 编辑:程序博客网 时间:2024/06/06 11:45

坐标型dp,求矩阵的右下角,两个关键点:

1. 要初始化两条边;

2. 到某一点的路径,由左边或上面的点的累积路径加上自己的数值得出。


public int minPathSum(int[][] grid) { 

if (grid == null || grid.length == 0 || grid[0] == null || grid[0].length == 0) {

return 0;

}

int m = grid.length, n = grid[0].length;

int [][] path = new int[m][n];

path[0][0] = grid[0][0];

for (int i = 1; i < m; i++) {

path[i][0] = grid[i][0] + path[i - 1][0];

}

for (int i = 1; i < n; i++) {

path[0][i] = grid[0][i] + path[0][i - 1];

}

for (int y= 1; y < m; y++) {

for (int x= 1; x < n; x++) {

path[y][x] = Math.min(path[y][x - 1], path[y - 1][x]) + grid[y][x];

}

}

return path[m - 1][n - 1];

}

0 0
原创粉丝点击