劍指Offer 47. 禮物的最大價值(Medium)

Aiclin發表於2020-12-06

在這裡插入圖片描述
【題目連結】

題解

  1. 禮物的最大價值(動態規劃,清晰圖解)

思路

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

程式碼

class Solution:
    ### 1206 動態規劃(40 ms,14.7 MB)
    def maxValue(self, grid: List[List[int]]) -> int:
        m, n = len(grid), len(grid[0])

        # 直接先計算第一行(第一行中每個格子的值只會來源於左邊一個格子)
        for j in range(1, n):
            grid[0][j] += grid[0][j-1]

        # 直接先計算第一列(第一列中每個格子的值只會來源於上面一個格子)
        for i in range(1, m):
            grid[i][0] += grid[i-1][0]

        for i in range(1, m):
            for j in range(1, n):
                grid[i][j] += max(grid[i][j-1], grid[i-1][j]) # 當前格子的最大值只會來源於:上面格子中的最大值 或 左邊格子中的最大值

        return grid[-1][-1]

相關文章