礼物的最大价值
问题简述
给定 m*n 的整型数组 grid,求从左上角到右下角路线中和的最大值(每次向下或向右移动一格)
示例输入:
[1,3,1]
[1,5,1]
[4,2,1]
输出: 12
解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物
思路:动态规划
状态定义
记
dp[i][j] := 从左上角走至 (i,j) 位置时的最大值
转移方程
dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + grid[i][j]
初始状态
dp[i][0] = sum(grid[:i][0])
dp[0][j] = sum(grid[0][:j])
Last updated