項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 search-input 尚未註冊或是沒有一個 view.php 檔案.

【Leetcode】python – [63] Unique Paths II 個人解法筆記 #重要題型

題目出處

63. Unique Paths II

難度

Medium

個人範例程式碼

class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        m, n = len(obstacleGrid), len(obstacleGrid[0])

        if not m or not n:
            return 0

        dp = [[0 for _ in range(n)] for _ in range(m)]

        # init
        if obstacleGrid[0][0] == 1:
            return 0
        else:
            dp[0][0] = 1 

        for i in range(1, m):
            if obstacleGrid[i][0] == 1:
                dp[i][0] = 0
            else:
                dp[i][0] = dp[i-1][0] 

        for j in range(1, n):
            if obstacleGrid[0][j] == 1:
                dp[0][j] = 0
            else:
                dp[0][j] = dp[0][j-1]

        # function
        for i in range(1, m):
            for j in range(1, n):
                if obstacleGrid[i][j] == 1:
                    dp[i][j] = 0
                else:
                    dp[i][j] = dp[i-1][j] + dp[i][j-1]

        # print(dp)
        # ans
        return dp[-1][-1]

算法說明

  • 此題的前一題為無障礙物版本,可以參考:

【Leetcode】python – [62] Unique Paths 個人解法筆記 #重要題型

也是經典的二維 DP 問題,
透過建立下方的圖片,就可以求得所有路徑的答案

(DP 記錄到達那一格的所有方法數)

而這一題我們只需要多做處理障礙物的部分,但這次我們需要特別小心,

除了中間之外,連「邊邊初始化也要處理

  • 處理中間

  • 邊邊初始化 (要多注意)

input handling

如果沒有 m 或 n,return 0 (無方法)
且如果 A[0][0] 位置就是障礙物,也是 return 0 (無方法)

Boundary conditions

用 for 來控制 DP 的範圍

Reference

⭐ Leetcode 解題紀錄 ⭐題型資料結構Python SolutionC++ SolutionNote
⭐BFS 相關題型 ⭐
104Maximum Depth of Binary TreeBFS (分層)Python
94Binary Tree Inorder TraversalBFS (分層)TreePython 內含 處理 Tree 樹問題的重點
102Binary Tree Level Order TraversalBFS (分層)TreePython
103Binary Tree Zigzag Level Order TraversalBFS (分層)TreePython
107Binary Tree Level Order Traversal IIBFS (分層)TreePython
133Clone GraphBFS (分層)GraphPython Graph 的基本操作 #重要題型
127Word LadderBFS (分層), DFSGraphPython
[Lint] 127Topological SortingBFS (拓撲)Python
內有 indegree, outdegree 介紹 #重要題型
207Course ScheduleBFS (拓樸)GraphPython
210Course Schedule II