File tree 1 file changed +37
-0
lines changed
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