Skip to content

Commit 7246d6e

Browse files
Create Course Schedule
Course Schedule code in C++
1 parent 60f95da commit 7246d6e

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

graph_problems/Course Schedule

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
bool canFinish(int n, vector<vector<int>>& A)
2+
{
3+
unordered_map<int, vector<int>> m;
4+
vector<int> dg(n,0);
5+
6+
for(int i=0;i<A.size();i++)
7+
{
8+
m[A[i][1]].push_back(A[i][0]);
9+
dg[A[i][0]]++;
10+
}
11+
12+
queue<int> q;
13+
for(int i=0; i<n; i++)
14+
if(dg[i] == 0)
15+
q.push(i);
16+
17+
while(!q.empty())
18+
{
19+
int curr = q.front();
20+
q.pop();
21+
n--;
22+
23+
for(int i=0; i<m[curr].size(); i++)
24+
{
25+
dg[m[curr][i]]--;
26+
if(dg[m[curr][i]] == 0)
27+
q.push(m[curr][i]);
28+
}
29+
}
30+
31+
return n == 0;
32+
}

0 commit comments

Comments
 (0)