标签:技术 int ret style sum 每日 leetcode loading code
动态规划
思路:
dp[i][j]表示走完 i,j 位置所需的最短路径,由于只能向下或者向右,所以第一行和第一列中每个值为当前值加上前一个值,即dp[0][j]=dp[0]
[j]+dp[0][j-1],dp[i][0] = dp[i][0]+dp[i-1][0]。非第一行和第一列的值为当前值加上其上边与左边中的较小值,即dp[i][j] = dp[i][j] + min(dp[i-1]
[j],dp[i][j-1])
代码:
class Solution: def minPathSum(self, grid: List[List[int]]) -> int: if not grid: return 0 rowSize = len(grid) colSize = len(grid[0]) for i in range(1,colSize): grid[0][i] = grid[0][i] + grid[0][i-1] for j in range(1,rowSize): grid[j][0] = grid[j][0] + grid[j-1][0] for i in range(1,rowSize): for j in range(1,colSize): grid[i][j] = grid[i][j]+min(grid[i-1][j],grid[i][j-1]) return grid[-1][-1]
标签:技术 int ret style sum 每日 leetcode loading code
原文地址:https://www.cnblogs.com/nilhxzcode/p/13060383.html