Leetcode 797 - All Paths From Source to Target

題目

Problem#

graphgraph

給你一個 n 個點的有向無環圖(DAG),問你可不可以找到所有從 0n-1 的路徑。

想法#

  • 時間複雜度: O(n+m) (n個點,m條邊)
  • 空間複雜度: O(n)

AC Code#

DFS + backtracking

Copy
class Solution {
public:
vector<vector<int>> G;
vector<int> p;
vector<bool> vis;
vector<vector<int>> ans;
void solve(int fr, int to)
{
if(fr == to)
{
ans.push_back(p);
return;
}
for(int i : G[fr])
{
if(!vis[i])
{
vis[i] = true;
p.push_back(i);
solve(i, to);
p.pop_back();
vis[i] = false;
}
}
}
vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
G = graph;
int n = G.size();
vis.resize(n);
vis[0] = true;
p.push_back(0);
solve(0, n-1);
return ans;
}
};
view raw leetcode/797.cpp delivered with ❤ by emgithub