1. 程式人生 > 實用技巧 >靜態庫、動態庫檔案製作

靜態庫、動態庫檔案製作

給一個有n個結點的有向無環圖,找到所有從0n-1的路徑並輸出(不要求按順序)

二維陣列的第i個數組中的單元都表示有向圖中i號結點所能到達的下一些結點(譯者注:有向圖是有方向的,即規定了 a→b 你就不能從 b→a )空就是沒有下一個結點了。

示例 1:

輸入:graph = [[1,2],[3],[3],[]]
輸出:[[0,1,3],[0,2,3]]
解釋:有兩條路徑 0 -> 1 -> 3 和 0 -> 2 -> 3

示例 2:

輸入:graph = [[4,3,1],[3,2,4],[3],[4],[]]
輸出:[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]

示例 3:

輸入:graph = [[1],[]]
輸出:[[0,1]]

示例 4:

輸入:graph = [[1,2,3],[2],[3],[]]
輸出:[[0,1,2,3],[0,2,3],[0,3]]

示例 5:

輸入:graph = [[1,3],[2],[3],[]]
輸出:[[0,1,2,3],[0,3]]

提示:

  • 結點的數量會在範圍[2, 15]內。
  • 你可以把路徑以任意順序輸出,但在路徑內的結點的順序必須保證。
class Solution:
    def allPathsSourceTarget(self, graph: List[List[int]]) -> List[List[int]]:
        res
=[] n=len(graph) def backtrack(cur,path): if cur==n-1: res.append(path) else: for nxt in graph[cur]: backtrack(nxt,path+[nxt]) return backtrack(0,[0]) or res