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; 7 8 for (auto &p : prerequisites) { 9 adj[p[1]].push_back(p[0]); 10 count[p[0]]++; 11 } 12 13 queue<int> q; 14 for (int i = 0; i < n; i++) 15 if (!count[i]) q.push(i); 16 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 };