剑指 Offer 47. 礼物的最大价值
Posted zchq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer 47. 礼物的最大价值相关的知识,希望对你有一定的参考价值。
剑指 Offer 47. 礼物的最大价值
解题思路
因为对于一个点,只可能是从上方或左方累加过来,那么选择值最大的那个方向累加即可。
转移方程:
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];
}
};
以上是关于剑指 Offer 47. 礼物的最大价值的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode(剑指 Offer)- 47. 礼物的最大价值