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