File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include <bits/stdc++.h>
2
+
3
+ using namespace std;
4
+
5
+ class Solution {
6
+ public:
7
+ bool isCycle(int course, vector<vector<int>>& adj, vector<int>& visited) {
8
+ if(visited[course] == 2) return true ;
9
+ if(visited[course] == 1) return false ;
10
+ visited[course] = 2 ;
11
+ for(auto connectedCourse : adj[course]) {
12
+ if(isCycle(connectedCourse, adj, visited)) {
13
+ return true ;
14
+ }
15
+ }
16
+ visited[course] = 1 ;
17
+ return false ;
18
+ }
19
+
20
+ bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
21
+ vector<vector<int>> adj(numCourses) ;
22
+ for(auto courses : prerequisites) {
23
+ auto course1 = courses[0] ;
24
+ auto course2 = courses[1] ;
25
+ adj[course2].push_back(course1) ;
26
+ }
27
+ vector<int> visited(numCourses, 0) ;
28
+ for(int course = 0 ; course < numCourses ; course++) {
29
+ if(!visited[course]) {
30
+ if(isCycle(course, adj, visited)) {
31
+ return false;
32
+ }
33
+ }
34
+ }
35
+ return true ;
36
+ }
37
+ };
You can’t perform that action at this time.
0 commit comments