LintCode最小路径和

给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。
样例
注意
你在同一时间只能向下或者向右移动一步

public class Solution {
    /**
     * @param grid: a list of lists of integers.
     * @return: An integer, minimizes the sum of all numbers along its path
     */
   public int minPathSum(int[][] grid) {
        if(null == grid)
            return 0;
        int row = grid.length;
        int col = grid[0].length;
        if(row <= 0 || col <= 0)
            return 0;
        int[][] steps = new int[row][col];
        steps[0][0] = grid[0][0];
        for(int i = 1;i < row;i++)
        {
            steps[i][0] += steps[i - 1][0] + grid[i][0];
        }
        
        for(int i = 1;i < col;i++)
        {
            steps[0][i] += steps[0][i - 1] + grid[0][i];
        }
    
        for(int i = 1;i < row;i++)
        {
            for(int j = 1;j < col;j++)
            {
                steps[i][j] = Math.min(steps[i - 1][j], steps[i][j - 1]) + grid[i][j];
            }
        }
    
        return steps[row - 1][col - 1];
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。 ** 注意事项你在同一...
    六尺帐篷阅读 4,959评论 0 1
  • 问题: 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。你在同一时间只能向下或...
    留十夜阅读 3,496评论 0 0
  • 描述 给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。 注意事项 你在同一时间...
    6默默Welsh阅读 845评论 0 0
  • 乍一听这书的名字有点“鸡汤”,跟蔡澜的《我决定活的有趣》有点相似,叫《生活是很好玩的》,作者汪曾祺。 蔡澜的《有趣...
    慕瑾禾ivy阅读 3,952评论 0 0
  • 沉郁的 冬日 阴沉得化不开 迷蒙慵懒 百无聊奈 一抹绿 亮了心怀 还是 应该有激情吧 向上的生命 恰如 这抹绿 盎...
    乌鸦一只阅读 2,532评论 1 4