原题
剑指 Offer 47. 礼物的最大价值
思路
- 简单的动态规划,从左边和上边中最大的那个+grid[i][j]。
代码
class Solution {
public:
int maxValue(vector<vector<int>>& grid) {
int m = grid.size(), n = grid[0].size();
int value[m][n];
value[0][0] = grid[0][0];
for (int i = 1; i < m; i++) value[i][0] = value[i-1][0] + grid[i][0];
for (int j = 1; j < n; j++) value[0][j] = value[0][j-1] + grid[0][j];
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) value[i][j] = max(value[i-1][j], value[i][j-1]) + grid[i][j];
}
return value[m-1][n-1];
}
};
运行截图

收获