leetcode 63 不同路径(二)(动态规划,python)

leetcode 63 不同路径(二)(动态规划,python)

参考:https://blog.csdn.net/fuxuemingzhu/article/details/83154114

关键:
martix最左上角赋初值1,把常见dp[i][j]=dp[i-1][j]+dp[i][j-1]
化为向右,向下两步进行。

备注:
提交答案过程中,
初始martix=[[0]*n]*m 错误,初始martix=[[0]*n for _in range(m)] 正确。
欢迎指正。

class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid):
        m = len(obstacleGrid)
        n = len(obstacleGrid[0])
        martix = [[0] * n]  for _ in range(m)]

        if obstacleGrid[0][0] == 0:
            martix[0][0] = 1
        for i in range(m):
            for j in range(n):
                if obstacleGrid[i][j] == 1:
                    martix[i][j] = 0
                else:
                    if i != 0:
                        martix[i][j] += martix[i - 1][j]
                    if j != 0:
                        martix[i][j] += martix[i][j - 1]
        return martix[m - 1][n - 1]

你可能感兴趣的:(leetcode 63 不同路径(二)(动态规划,python))