#本题找规律容易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]