Skip to content

Commit 53028e6

Browse files
committed
leetcode
1 parent 84dc244 commit 53028e6

1 file changed

+31
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Solution {
2+
public:
3+
vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {
4+
5+
vector<int> order;
6+
stack<int> dfs;
7+
int count = 0;
8+
vector<int> indegree(numCourses,0);
9+
for(int i=0; i<prerequisites.size(); i++) {
10+
indegree[prerequisites[i][0]]++;
11+
}
12+
for(int i=0; i<indegree.size(); i++) {
13+
if(indegree[i]==0)
14+
dfs.push(i);
15+
}
16+
while(!dfs.empty()) {
17+
int current = dfs.top(); dfs.pop();
18+
order.push_back(current);
19+
count++;
20+
for(int i=0; i<prerequisites.size(); i++) {
21+
if(prerequisites[i][1]==current) {
22+
indegree[prerequisites[i][0]]--;
23+
if(indegree[prerequisites[i][0]]==0)
24+
dfs.push(prerequisites[i][0]);
25+
}
26+
}
27+
}
28+
if(count != numCourses) order.clear();
29+
return order;
30+
}
31+
};

0 commit comments

Comments
 (0)