1. 程式人生 > 其它 >所有可能的路徑

所有可能的路徑

題目連結: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();
        }
       
    }
};