解题思路
简单动态规划,思路如代码注释
第一行,从左边来
第一列,从上边来
否则,左边上边,哪边近选择哪边
64. 最小路径和
代码
class Solution:
def minPathSum(self, grid: List[List[int]]) -> int:
for r in range(len(grid)):
for c in range(len(grid[r])):
if r == 0 and c == 0: continue
elif r == 0: grid[r][c] += grid[r][c-1] # 第一行,从左边来
elif c == 0: grid[r][c] += grid[r-1][c] # 第一列,从上边来
else: grid[r][c] += min(grid[r][c-1], grid[r-1][c]) # 左边上边,哪边近选择哪边
return grid[-1][-1]

网友评论