《剑指Offer-47-礼物的最大价值》
从左上角到右下角,每次只能向右或者向下移动,问路径总值最大是多少?
今天刚好让我撞见是每日一题,刚好又一眼知道怎么做
int maxValue(vector<vector<int>>& grid) { int m = grid.size(), n = grid[0].size(); // 二维dp,dp[i][j]表示到达i行j列位置的最大价值 vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0)); // 状态转移方程 for (int i = 1; i <= m; ++i) for (int j = 1; j <= n; ++j) dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + grid[i - 1][j - 1]; return dp[m][n]; }
空间效率不太行,但是感觉又没有那么好优化
本文作者:YaosGHC
本文链接:https://www.cnblogs.com/yaocy/p/17196409.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步