题目链接:
https://leetcode.cn/problems/li-wu-de-zui-da-jie-zhi-lcof/description/?favorite=xb9nqhhg&orderBy=hot
代码:
class Solution {
public:
int maxValue(vector<vector<int>>& grid) {
int dp[207][209];
dp[0][0]=grid[0][0];
for(int i=0;i<grid.size();i++)
{
for(int j=0;j<grid[i].size();j++)
{
if(i==0&&j>0) dp[0][j]=dp[0][j-1]+grid[i][j];
if(j==0&&i>0)
{
dp[i][0]=dp[i-1][0]+grid[i][j];
}
}
}
for(int i=0;i<grid.size();i++)
{
for(int j=0;j<grid[i].size();j++)
{
printf("%d ",dp[i][j]);
}
printf("\n");
}
for(int i=1;i<grid.size();i++)
{
for(int j=1;j<grid[i].size();j++)
{
dp[i][j]=max(dp[i][j-1]+grid[i][j],dp[i-1][j]+grid[i][j]);
printf("%d---%d--%d\n",i,j,dp[i][j]);
}
}
return dp[grid.size()-1][grid[0].size()-1];
}
};
该代码实现了一个解决方案,计算从左上角到右下角经过的网格路径中数字之和的最大值。使用了动态规划的方法,通过遍历网格并更新dp数组来存储每个位置的最大路径和。
234

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



