一、题目地址
https://leetcode-cn.com/problems/li-wu-de-zui-da-jie-zhi-lcof/
二、具体代码
/**
* @param {number[][]} grid
* @return {number}
*/
// 动态规划
// 时间复杂度:O(mn)
// 空间复杂度:O(1)
var maxValue = 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) {
continue;
}else if(i === 0) {
grid[i][j] += grid[i][j-1];
}else if(j === 0) {
grid[i][j] += grid[i-1][j];
}else {
grid[i][j] += Math.max(grid[i-1][j], grid[i][j-1]);
}
}
}
return grid[m-1][n-1];
};
/**
* @param {number[][]} grid
* @return {number}
*/
// 动态规划_优化
// 时间复杂度:O(mn)
// 空间复杂度:O(1)
var maxValue = function(grid) {
let m = grid.length;
let n = grid[0].length;
// 初始化第一行
for(let j=1; j<n; j++) {
grid[0][j] += grid[0][j-1];
}
// 初始化第一列
for(let i=1; i<m; i++) {
grid[i][0] += grid[i-1][0];
}
for(let i=1; i<m; i++) {
for(let j=1; j<n; j++) {
grid[i][j] += Math.max(grid[i-1][j], grid[i][j-1]);
}
}
return grid[m-1][n-1];
};
三、补充链接
四、补充部分
关注公众号:【深漂程序员小庄】:
内含丰富的学习资源和面试经验(不限前端、java),还有学习交流群可加,并且还有各大厂大佬可一起交流学习,一起进步~添加小庄微信,回复【加群】,可加入互联网技术交流群: