Untitled
unknown
plain_text
a year ago
760 B
5
Indexable
class Solution {
public:
bool canFinish(int n, vector<vector<int>>& pre) {
vector<vector<int>> graph(n);
// create graph
for(auto &x: pre){
if(x[0]==x[1]) return false;
graph[x[1]].push_back(x[0]);
}
vector<bool> visited(n, false); // visited/completed courses
return detectCycle(graph, visited, 0);
}
bool detectCycle(vector<vector<int>> graph,vector<bool> &visited, int start){
if(visited[start]) return false;
visited[start] = true;
bool finish = true;
for(int i=0;i<graph[start].size();i++){
finish = finish && detectCycle(graph,visited,graph[start][i]);
}
return finish;
}
};Editor is loading...
Leave a Comment