题目描述:
第一次提交:
class Solution: def uniquePathsWithObstacles(self, obstacleGrid) : m = len(obstacleGrid) n = len(obstacleGrid[0]) for i in range(m): for j in range(n): if i==0 and j==0: if obstacleGrid[i][j] == 1: return 0 else:obstacleGrid[i][j] = 1 elif j==0: if obstacleGrid[i][j]==1: obstacleGrid[i][j]=0 else: obstacleGrid[i][j]=obstacleGrid[i-1][j] elif i==0: if obstacleGrid[i][j]==1: obstacleGrid[i][j]=0 else: obstacleGrid[i][j]=obstacleGrid[i][j-1] else: if obstacleGrid[i][j]==1: obstacleGrid[i][j]=0 else: obstacleGrid[i][j]=obstacleGrid[i-1][j]+obstacleGrid[i][j-1] return obstacleGrid[-1][-1]
参考:O(mn) O(1)
class Solution: def uniquePathsWithObstacles(self, obstacleGrid) : m = len(obstacleGrid) n = len(obstacleGrid[0]) if obstacleGrid[0][0] == 1: return 0 obstacleGrid[0][0] = 1 for i in range(1,m): obstacleGrid[i][0] = int(obstacleGrid[i][0] == 0 and obstacleGrid[i-1][0] == 1) for j in range(1, n): obstacleGrid[0][j] = int(obstacleGrid[0][j] == 0 and obstacleGrid[0][j-1] == 1) for i in range(1,m): for j in range(1,n): if obstacleGrid[i][j] == 0: obstacleGrid[i][j] = obstacleGrid[i-1][j] + obstacleGrid[i][j-1] else: obstacleGrid[i][j] = 0 return obstacleGrid[-1][-1]
原文:https://www.cnblogs.com/oldby/p/11177989.html