Minimum Path Sum

Minimum Path Sum

问题:

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

思路:

  简单的动态规划问题

我的代码:

public class Solution {

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

        if(grid == null || grid.length == 0 || grid[0].length == 0) return -1;

        int row = grid.length;

        int col = grid[0].length;

        for(int i = 1; i < row; i++)

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

        for(int j = 1; j < col; 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-1][j],grid[i][j-1]); 

            }

        }

        return grid[row-1][col-1];

    }

}
View Code

 

你可能感兴趣的:(Path)