1、禮物的最大價值
在乙個 m*n 的棋盤的每一格都放有乙個禮物,每個禮物都有一定的價值(價值大於 0)。你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向右或者向下移動一格、直到到達棋盤的右下角。給定乙個棋盤及其上面的禮物的價值,請計算你最多能拿到多少價值的禮物?
力扣鏈結
思路:動態規劃
狀態表示:dp[i][j]表示以grid[i][j]為結尾的,可以拿到禮物的最大價值
轉移方程:dp[i][j]=max(dp[i-1][j],dp[i][j-1])+gird[i][j]
初始值: dp[0][0]=grid[0][0]
返回值:dp[m-1][n-1]
class
solution
:def
maxvalue
(self, grid: list[list[
int]])
->
int:
m=len(grid)
#行 n=
len(grid[0]
)#列dp=[[
0for _ in
range
(n)]
for _ in
range
(m)]
dp[0]
[0]=grid[0]
[0]for i in
range(1
,m):
#注意邊界條件
dp[i][0
]=dp[i-1]
[0]+grid[i][0
]for j in
range(1
,n):
#注意邊界條件
dp[0]
[j]=dp[0]
[j-1
]+grid[0]
[j]for i in
range(1
,m):
for j in
range(1
,n):
dp[i]
[j]=
max(dp[i-1]
[j],dp[i]
[j-1])
+grid[i]
[j]return dp[m-1]
[n-1
]
劍指offer 47 禮物的最大價值
題目描述 在乙個 m n 的棋盤的每乙個格都放有乙個禮物,每個禮物都有一定價值 大於 0 從左上角開始拿禮物,每次向右或向下移動一格,直到右下角結束。給定乙個棋盤,求拿到禮物的最大價值。例如,對於如下棋盤 1 10 3 8 12 2 9 6 5 7 4 11 3 7 16 5 禮物的最大價值為 1 ...
劍指offer 47 禮物的最大價值
在乙個m x n的棋盤的每乙個字都放有乙個禮物,每個禮物都有一定的價值 價值大於0 可以從棋盤的左上角開始拿格仔裡的禮物,並每次向左或向下移動一格,直到到達棋盤的右下角。給定乙個棋盤及棋盤上面的禮物,計算出最多能拿到多少價值的禮物。首先定義乙個函式f i,j 表示到達座標為 i,j 時能拿到禮物的總...
劍指offer書 47 禮物的最大價值
題目 禮物的最大價值。m n大小的矩陣中放著價值 0的物品,從左上角走到左下角,每次只能向下或者向右走。author hexiaoli 思路 劍指offer eg 從右到左翻譯並計算不同翻譯的數目,解除重複子問題。public class main int i 0 int j 0 while iva...