leetcode刷題-62不同路徑2
阿新 • • 發佈:2020-08-06
題目
一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。
機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。
現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?
網格中的障礙物和空位置分別用1
和0
來表示。
思路
與61題的不同路徑幾乎相似,但在第一行和第一列陣列設定上,需要將有障礙物的格子,將其及其後面的方格都設為0
實現
class Solution: def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int: m= len(obstacleGrid) n = len(obstacleGrid[0]) matrix = [[0 for i in range(n)] for j in range(m)] x = False y = False for k in range(m): for j in range(n): if k < 1: if obstacleGrid[k][j] == 1 or x == True: x= True if j == 0 : y = True else: matrix[k][j] = 1 elif j < 1: if obstacleGrid[k][j] == 1 or y == True: y = True else: matrix[k][j]= 1 elif obstacleGrid[k][j] != 1: matrix[k][j] = matrix[k-1][j] + matrix[k][j-1] return matrix[m-1][n-1]