所有可能的路徑
阿新 • • 發佈:2021-08-29
題目連結:https://leetcode-cn.com/problems/all-paths-from-source-to-target
題目描述:
給你一個有n個節點的 有向無環圖(DAG),請你找出所有從節點 0到節點 n-1的路徑並輸出(不要求按特定順序)
二維陣列的第 i 個數組中的單元都表示有向圖中 i 號節點所能到達的下一些節點,空就是沒有下一個結點了。
譯者注:有向圖是有方向的,即規定了 a→b 你就不能從 b→a 。
題解:
class Solution { public: vector<vector<int>> ans; vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) { vector<int> path(1, 0); trackingBack(0, graph.size(), graph, path); return ans; } void trackingBack(int cur, int n, vector<vector<int>>& graph, vector<int> &curpath) { if(cur == n - 1) { ans.push_back(curpath); return; } for(auto node: graph[cur]) { curpath.push_back(node); trackingBack(node, n, graph, curpath); curpath.pop_back(); } } };