LeetCode 63. Unique Paths II (Python)最优解--Apolo_Shane

#本题找规律容易
l[i][j] = l[i - 1][j] + l[i][j - 1]
但是一定要注意处理边界问题,通过生成(m+1)*(n+1)的二维数组来避免边界问题
class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid):

        m = len(obstacleGrid)
        n = len(obstacleGrid[0])

        l = [[0] * (n + 1) for i in range(m + 1)]
        l[0][1] = 1

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

你可能感兴趣的:(LeetCode/OJ,算法Algorithm,Python)