64. Minimum Path Sum

64. Minimum Path Sumarrow-up-right

從最後一個位置向原點出發,每次都往總和比較小的路徑前進,直到原點為止,找出最小的總和

遞迴

class Solution:
    def minPathSum(self, grid: List[List[int]]) -> int:
        rows = len(grid)
        cols = len(grid[0])

        def helper(row, col):
            if row < 0 or col < 0:
                return float('inf')
            if row == 0 and col == 0:
                return grid[row][col]
            return min(
                dp(row-1, col), 
                dp(row, col-1)
            ) + grid[row][col]

        return helper(rows-1, cols-1)

自頂向下

自底向上

從原點向終點出發

遞迴

自頂向下

自底向上

Last updated