题意
给个 square 二维数组。 从左上角爬到右下角。只能向右或者向下爬。求所经路径最小和思路
参考
利用如下公式:
代码
/** * @param {number[][]} grid * @return {number} */var minPathSum = function(grid) { let height = grid.length; if(!height){ return 0; } let width = grid[0].length; if(!width){ return 0; } for(let i = 1; i < height; ++i){ grid[i][0] += grid[i - 1][0]; } for(let j = 1; j < width; ++j){ grid[0][j] += grid[0][j - 1]; } for(let i = 1; i < height; ++i){ for(let j = 1; j < width; ++j){ // 下面这行很神奇 把加法 min 函数里面,反而会变快 grid[i][j] = Math.min(grid[i - 1][j] + grid[i][j], grid[i][j - 1] + grid[i][j]); } } return grid[height - 1][width - 1];};复制代码
探索
把 加法运算放 Math.min 函数里面 反而比 放外面 更快。很神奇,没想通。