直接在原矩阵上改数据,控制第一行和第一列更新为当前值和前面或上面的值累加,其他位置则判断从上面还是左边的值更小并累加进行更新,最终返回最后一个值即可
var minPathSum = function(grid) {
let m = grid.length
let n = grid[0].length
for(let i=0; i<m; i++){
for(let j=0; j<n; j++){
if(i==0 && j==0) {
} else if(i==0 && j > 0) {
grid[i][j] = grid[i][j] + grid[i][j-1]
} else if(j==0 && i > 0) {
grid[i][j] = grid[i][j] + grid[i-1][j]
} else {
grid[i][j] = Math.min(grid[i-1][j], grid[i][j-1]) + grid[i][j]
}
}
}
return grid[m-1][n-1]
};
网友评论