leetcode 禮物的最大價值

2021-10-04 20:50:29 字數 895 閱讀 1419

在乙個 m*n 的棋盤的每一格都放有乙個禮物,每個禮物都有一定的價值(價值大於 0)。你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向右或者向下移動一格、直到到達棋盤的右下角。給定乙個棋盤及其上面的禮物的價值,請計算你最多能拿到多少價值的禮物?

*********************************************

示例 1:

輸入:[

[1,3,1],

[1,5,1],

[4,2,1]

]輸出: 12

解釋: 路徑 1→3→5→2→1 可以拿到最多價值的禮物

****************************************===

本題屬於一道較簡單的動態規劃類題目.還是按照步驟一步步來分析.剛開始學習動態規劃時,就像小時候解題一樣,一步步理清自己的思路是非常重要的.按步驟慢慢來.

class

solution

if(j+

1< col)}}

return s[0]

[0];

}}

降低空間複雜度值o(1)

在初始版本中,由於我們使用額外的陣列s儲存各狀態時的最優方案, 因此空間複雜度為o(mn). 通過分析, 我們發現我們可以直接更改grid[i][j]上的元素, 在計算完(i, j)處最優方案後,使用grid[i][j]儲存位置(i, j)處最優方案.

class

solution

if(j+

1< col)

grid[i]

[j]+= sum;}}

return grid[0]

[0];

}}

禮物的最大價值

題目 在乙個mxn的棋盤的每乙個都放有乙個禮物,每個禮物都有一定的價值 價值大於0 你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向右或者向下移動一格,知道到達棋盤的右下角。給定乙個棋盤及其上面的禮物,請計算你最多能達到多少價值的禮物。方法一 動態規劃 二維陣列儲存 int getmaxvalue ...

禮物的最大價值

題目 在乙個m n的棋盤的每一格都放有乙個禮物,每個禮物都有一定的價值 價值大於0 你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向左或者向下移動一格直到到達棋盤的右下角。給定乙個棋盤及其上面的禮物,請計算你最多能拿到多少價值的禮物?動態規劃,優化前 int getmaxvalue const in...

禮物的最大價值

面試題47 禮物的最大價值 題目 在乙個m n的棋盤的每一格都放有乙個禮物,每個禮物都有一定的價值 價值大於0 你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向右或 者向下移動一格直到到達棋盤的右下角。給定乙個棋盤及其上面的禮物,請計 算你最多能拿到多少價值的禮物?static int get ma...