题目地址:https://leetcode-cn.com/problems/minimum-path-sum/
题目简介:
给定一个包含非负整数的 m x n
网格 grid
,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
题目解:
class Solution {
public int minPathSum(int[][] grid) {
if(grid == null || grid.length == 0)return 0;
int row = grid.length;
int col = grid[0].length;
int[][]a = new int[row][col];
a[row-1][col-1] = grid[row-1][col-1];
for(int i=row-2;i>=0;i--){
a[i][col-1] = a[i+1][col-1]+grid[i][col-1];
}
for(int i=col-2;i>=0;i--){
a[row-1][i] = a[row-1][i+1]+grid[row-1][i];
}
for(int i=row-2;i>=0;i--)
{
for(int j=col-2;j>=0;j--){
a[i][j] = Math.min(grid[i][j]+a[i][j+1],grid[i][j]+a[i+1][j]);
}
}
return a[0][0];
}
}