题目链接:leetcode.
图里面的,算是求两个节点之间的路径吧,用深度优先和回溯
/*
执行用时:8 ms, 在所有 C++ 提交中击败了97.31%的用户
内存消耗:11.5 MB, 在所有 C++ 提交中击败了75.64%的用户
*/
class Solution {
vector<vector<int>> ans;
vector<int> tmp;
void dfs(vector<vector<int>>& graph, int index, int N)
{
if(tmp.back() == N - 1)
{
ans.push_back(tmp);
return;
}
for(int i = 0;i < graph[index].size();++i)
{
tmp.push_back(graph[index][i]);
dfs(graph, graph[index][i], N);
tmp.pop_back();
}
}
public:
vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
int N = graph.size();
tmp.push_back(0);
dfs(graph, 0, N);
return ans;
}
};