64 Minimum Path Sum

给定m乘n网格填充非负数,找到从左上到右下的路径,最小化沿其路径的所有数字总和,只能在任何时间点向下或向右移动

动态规划实现

  • Runtime: 72 ms, faster than 96.42%
  • Memory Usage: 37.4 MB, less than 68.59%

首先确定第一行和第一列,后面逐行逐列得到。

/**
 * @param {number[][]} grid
 * @return {number}
 */
var minPathSum = function(grid) {
    let m = grid.length
    let n = grid[0].length
    for(let i = 1; i < m; i++) {
        grid[i][0] += grid[i - 1][0]
    }
    for (let i = 1; i < n; i++) {
        grid[0][i] += grid[0][i - 1]
    }
    for(let i = 1; i < m; i++) {
        for(let j = 1; j < n; j++) {
            grid[i][j] += Math.min(grid[i - 1][j], grid[i][j - 1])
        }
    }
    return grid[m - 1][n - 1]
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容