Leetcode練習(Python):數組類:第63題:一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 現在考慮網格中有障礙物。那么從左上角到右下角將會有多少條不同的路徑?


題目:
一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。  機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。  現在考慮網格中有障礙物。那么從左上角到右下角將會有多少條不同的路徑? 
思路:
和沒有障礙思路類似,將有障礙部分設置成1就好了
程序:
class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        row = len(obstacleGrid)
        column = len(obstacleGrid[0])
        if row <= 0:
            return 0
        result = [[0] * (column + 1) for _ in range(row + 1)]
        result[0][1] = 1
        for index1 in range(1, row + 1):
            for index2 in range(1, column + 1):
                if obstacleGrid[index1 - 1][index2 - 1] == 0:
                    result[index1][index2] = result[index1 - 1][index2] + result[index1][index2 - 1]
        output = result[-1][-1]
        return output


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM