标签:cpp 矩阵 val off 方向 class 最大的 pre lan
因为对于一个点,只可能是从上方或左方累加过来,那么选择值最大的那个方向累加即可。
转移方程:
f[i][j]+=max(f[i-1][j],f[i][j-1]);
在原矩阵上操作,最后返回最右下角的数即可。
class Solution {
public:
int maxValue(vector<vector<int> >& grid) {
for(int i=0;i<grid.size();i++)
{
for(int j=0;j<grid[0].size();j++)
{
if(i==0&&j!=0)
{
if(grid[i][j-1]>0)
{
grid[i][j]+=grid[i][j-1];
}
}else if(i!=0&&j==0)
{
if(grid[i-1][j]>0)
{
grid[i][j]+=grid[i-1][j];
}
}else if(i!=0&&j!=0)
{
int max=grid[i-1][j]>grid[i][j-1]?grid[i-1][j]:grid[i][j-1];
if(max>0)
{
grid[i][j]+=max;
}
}
}
}
return grid[grid.size()-1][grid[0].size()-1];
}
};
标签:cpp 矩阵 val off 方向 class 最大的 pre lan
原文地址:https://www.cnblogs.com/zchq/p/13873871.html