剑指 Offer 47. 礼物的最大价值

思路
经典动态规划
初始化首行首列,dp[i][j]=max(dp[i-1][j],dp[i][j-1])
代码
public int maxValue(int[][] grid) {
int m=grid.length,n=grid[0].length;
int [][]dp=new int[m][n];
dp[0][0]=grid[0][0];
for(int i=1;i<m;i++)
dp[i][0]=grid[i][0]+dp[i-1][0];
for(int j=1;j<n;j++)
dp[0][j]=grid[0][j]+dp[0][j-1];
for(int i=1;i<m;i++){
for(int j=1;j<n;j++){
dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1])+grid[i][j];
}
}
return dp[m-1][n-1];
}
博客介绍了如何使用动态规划解决《剑指Offer》中的礼物最大价值问题。代码展示了一个二维数组网格,通过初始化首行首列,然后逐行逐列计算每个位置的最大价值,最终返回右下角的最大值。
235

被折叠的 条评论
为什么被折叠?



