leetcode 每日一题 64. 最小路径和
Posted nil_f
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 每日一题 64. 最小路径和相关的知识,希望对你有一定的参考价值。
动态规划
思路:
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]
以上是关于leetcode 每日一题 64. 最小路径和的主要内容,如果未能解决你的问题,请参考以下文章