靜態庫、動態庫檔案製作
阿新 • • 發佈:2020-12-04
給一個有n
個結點的有向無環圖,找到所有從0
到n-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