当前位置:网站首页>剑指Offer 47.礼物的最大值 动态规划
剑指Offer 47.礼物的最大值 动态规划
2022-08-02 03:33:00 【HotRabbit.】
题目
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?
示例 1:
输入:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
输出: 12
解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物
提示:
0 < grid.length <= 200
0 < grid[0].length <= 200
Related Topics
- 数组
- 动态规划
- 矩阵
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/li-wu-de-zui-da-jie-zhi-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
动态规划
转移方程:
- 当 i=0 且 j=0 时,为起始元素;
- 当 i=0 且 j\=0 时,为矩阵第一行元素,只可从左边到达;
- 当 i=0 且 j=0 时,为矩阵第一列元素,只可从上边到达;
- 当 i\=0 且 j\=0 时,可从左边或上边到达;
d p ( i , j ) = { g r i d ( i , j ) , i = 0 , j = 0 g r i d ( i , j ) + d p ( i , j − 1 ) , i = 0 , j ≠ 0 g r i d ( i , j ) + d p ( i − 1 , j ) , i ≠ 0 , j = 0 g r i d ( i , j ) + max [ d p ( i − 1 , j ) , d p ( i , j − 1 ) ] , i ≠ 0 , j ≠ 0 dp(i,j)= \begin{cases} grid(i,j) & {,i=0, j=0}\\ grid(i,j) + dp(i,j-1) & {,i=0, j \ne 0}\\ grid(i,j) + dp(i-1,j) & {,i \ne 0, j=0}\\ grid(i,j) + \max[dp(i-1,j),dp(i,j-1)]& ,{i \ne 0, j \ne 0} \end{cases} dp(i,j)=⎩⎨⎧grid(i,j)grid(i,j)+dp(i,j−1)grid(i,j)+dp(i−1,j)grid(i,j)+max[dp(i−1,j),dp(i,j−1)],i=0,j=0,i=0,j=0,i=0,j=0,i=0,j=0
题解
class Solution {
public int maxValue(int[][] grid) {
int m = grid.length,n = grid[0].length;
for (int i = 0;i < m;i ++){
for (int j = 0;j < n;j++){
if (i == 0 && j == 0) continue;
if (i == 0) grid[i][j] += grid[i][j-1];
else if (j == 0) grid[i][j] += grid[i-1][j];
else grid[i][j] += Math.max(grid[i][j-1],grid[i-1][j]);
}
}
return grid[m-1][n-1];
}
}
边栏推荐
猜你喜欢
联阳IT6561|IT6561FN方案电路|替代IT6561方案设计DP转HDMI音视频转换器资料
联阳(ITE)IT66021FN:HDMI转RGB芯片 3D 资料
TQP3M9009电路设计
MOS管开关原理及应用详解
Cadence allegro导出Gerber文件(制板文件)图文操作
D类音频功放NS4110B电路设计
Basic IO (on): file management and descriptors
Pylon CLI 低成本的本地环境管控工具应用实例
【Connect the heart rate sensor to Arduino to read the heart rate data】
将ORCAD原理图导入allegro中进行PCB设计
随机推荐
Industry where edge gateway strong?
使用pyqt弹出消息提示框
install 命令
bluez5.50+pulseaudio实现蓝牙音响音频播放
path 修补文件命令
Typora use
【TCS3200 color sensor and Arduino realize color recognition】
NSIS来自己设定快捷方式的图标
龙讯LT6911系列C/UXC/UXB/GXC/GXB芯片功能区别阐述
Chrome 里的小恐龙游戏是怎么做出来的?
Type c PD 电路设计
如何使用 PHP 实现网页交互
[Arduino connected to GPS module (NEO-6M) to read positioning data]
【数据库】事务的四大特性<详解>
Website development plan research
【科普贴】SPI接口详解
实现动态库(DLL)之间内存统一管理
D类音频功放NS4110B电路设计
Case | industrial iot solutions, steel mills high-performance security for wisdom
idea中创建jsp项目详细步骤