leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0210.cpp (706B)


0 class Solution {
1 public:
2 vector<int> findOrder(int n, vector<vector<int>> &prerequisites) {
3 vector<vector<int>> adj(n);
4 vector<int> count(n, 0);
5 vector<int> res;
6 int num = 0;
8 for (auto &p : prerequisites) {
9 adj[p[1]].push_back(p[0]);
10 count[p[0]]++;
11 }
13 queue<int> q;
14 for (int i = 0; i < n; i++)
15 if (!count[i]) q.push(i);
17 while (!q.empty()) {
18 int root = q.front();
19 q.pop();
20 res.push_back(root);
21 n--;
22 for (int c : adj[root])
23 if (!--count[c]) q.push(c);
24 }
25 return n == 0 ? res : vector<int>();
26 }
27 };