leetcode

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

0851.cpp (779B)


0 class Solution { 1 public: 2 vector<int> loudAndRich(vector<vector<int>> &richer, vector<int> &quiet) { 3 const int n = quiet.size(); 4 vector<vector<int>> adj(n); 5 vector<int> count(n); 6 vector<int> res(n); 7 iota(res.begin(), res.end(), 0); 8 9 for (auto &p : richer) { 10 adj[p[0]].push_back(p[1]); 11 count[p[1]]++; 12 } 13 14 queue<int> q; 15 for (int i = 0; i < n; i++) 16 if (!count[i]) q.push(i); 17 18 while (!q.empty()) { 19 int crnt = q.front(); 20 q.pop(); 21 for (int &c : adj[crnt]) { 22 if (quiet[res[c]] > quiet[res[crnt]]) res[c] = res[crnt]; 23 if (!--count[c]) q.push(c); 24 } 25 } 26 return res; 27 } 28 };