劍指offer47 禮物的最大價值

2021-09-26 14:44:14 字數 587 閱讀 1953

題目描述

在乙個 m*n 的棋盤的每乙個格都放有乙個禮物,每個禮物都有一定價值(大於 0)。從左上角開始拿禮物,每次向右或向下移動一格,直到右下角結束。給定乙個棋盤,求拿到禮物的最大價值。例如,對於如下棋盤

1 10 3 8

12 2 9 6

5 7 4 11

3 7 16 5

思路:動態規劃

狀態dp[i][j]:走到當前位置時候禮物的最大值

初始化:dp的第一行只能從左走到右所以dp[0][j] = dp[0][j-1] + values[0][j] ,第一列只能從上走到下所以dp[i][0] = dp[i-1][0] + values[i][0];

狀態轉移方程:dp[i][j] = math.max(dp[i-1][j] , dp[i][j-1])

結果:dp[m-1][n-1]

public class bonus 

for(int i = 1 ; i < m ; i++)

for(int i = 1 ; i < n ; i++)

}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 時能拿到禮物的總...

劍指offer47 禮物的最大價值

題目描述 在乙個m n的棋盤的每一格都放乙個禮物,每個禮物都有一定的價值 價值大於0 你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向左或向下移動一格,直到到達棋盤的右下角。給定乙個棋盤及其上邊的禮物,請計算你最多能拿多少價值的禮物。方法1 建立二維陣列,動態規劃法 def getmaxvalue ...