剑指offer 48. 礼物的最大价值

简介: 剑指offer 48. 礼物的最大价值

题目描述


在一个 m×n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。


你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格直到到达棋盘的右下角。


给定一个棋盘及其上面的礼物,请计算你最多能拿到多少价值的礼物?


注意:


m,n>0

m×n≤1350

样例:

输入:
[
[2,3,1],
[1,7,1],
[4,6,1]
]
输出:19
解释:沿着路径 2→3→7→6→1 可以得到拿到最大价值礼物。


方法一:线性DP O(n*m)

状态表示:f[i][j] 表示到第 i 行第 j 列为止取到的礼物最大价值。


状态计算:f[i][j] = max(f[i-1][j],f[i][j-1]) + grid[i-1][j-1]


因为这道题有规定说只能往右或者往下走,所以可以利用上述的方程进行转移。

class Solution {
public:
    int getMaxValue(vector<vector<int>>& grid) {
        int n = grid.size(), m = grid[0].size();
        vector<vector<int>> f(n + 1, vector<int>(m + 1, 0));
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= m; j++)
                f[i][j] = max(f[i - 1][j], f[i][j - 1]) + grid[i - 1][j - 1];
        return f[n][m];
    }
};


欢迎大家在评论区交流~

目录
相关文章
|
算法
【学会动态规划】礼物的最大价值(7)
【学会动态规划】礼物的最大价值(7)
66 0
|
3月前
acwing 110 抓住那头牛
acwing 110 抓住那头牛
14 0
|
8月前
剑指 Offer 47:礼物的最大价值
剑指 Offer 47:礼物的最大价值
43 0
|
8月前
【每日一题Day140】剑指 Offer 47. 礼物的最大价值 | 动态规划 记忆化搜索
【每日一题Day140】剑指 Offer 47. 礼物的最大价值 | 动态规划 记忆化搜索
37 0
动态规划之剑指 Offer 47. 礼物的最大价值
动态规划之剑指 Offer 47. 礼物的最大价值
|
C++
剑指Offer - 面试题47:礼物的最大价值
剑指Offer - 面试题47:礼物的最大价值
99 0
第三期:那些年,我们一起经历过的链表中的浪漫
第三期:那些年,我们一起经历过的链表中的浪漫
84 0
|
算法 Java
礼物的最大价值(剑指offer 47)
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?
108 0
剑指 Offer 47. 礼物的最大价值
剑指 Offer 47. 礼物的最大价值
141 0
|
机器学习/深度学习 人工智能 算法
蓝桥杯最后一天复习?各大算法四步法教你轻松秒杀各种题型
大家好,我是泡泡,距离蓝桥杯还有一天时间,我们一定要把握住最后的时间,跟着我,把全部的题型复习整理一遍,让自己不再迷茫不自信,AK蓝桥!
249 0
蓝桥杯最后一天复习?各大算法四步法教你轻松秒杀各种题型