Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
Example:
Input: [ [1,3,1], [1,5,1], [4,2,1] ] Output: 7 Explanation: Because the path 1→3→1→1→1 minimizes the sum.
题目:在一个M x N矩阵下,从[0][0]开始,只能往下或者往右走,求到达[m-1][n-1]路径权值最小是多少
思路:题目跟第61很像,解法一致,明白 [ i ][ j ] = min{[ i - 1][ j ],[ i ][ j - 1] } + [ i ][ j ] 即可得出答案
class Solution {
public int minPathSum(int[][] grid) {
int row = grid.length;
int col = 0;
if(row > 0)
col = grid[0].length;
for(int i=1; i<row; i++)
{
grid[i][0] = grid[i][0] + grid[i-1][0];
}
for(int j=1; j<col; j++)
{
grid[0][j] = grid[0][j] + grid[0][j-1];
}
for(int i=1; i<row; i++)
{
for(int j=1; j<col; j++)
{
grid[i][j] = Math.min(grid[i][j-1],grid[i-1][j]) + grid[i][j];
}
}
return grid[row-1][col-1];
}
}