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

 

posted on 2015-03-07 16:33  zhouzhou0615  阅读(148)  评论(0编辑  收藏  举报

导航