题解 | #牛群的喂养顺序II#
牛群的喂养顺序II
https://www.nowcoder.com/practice/05abc133293a42358bbbb4016034728e
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param numCows int整型 * @param feedOrders int整型vector<vector<>> * @return int整型vector */ vector<int> findFeedOrderII(int numCows, vector<vector<int> >& feedOrders) { // write code here vector<vector<int>> adjenct(numCows); vector<int> ans; vector<int> indegree(numCows); queue<int> q; for (auto& feedOrder : feedOrders) { adjenct[feedOrder[1]].push_back(feedOrder[0]); indegree[feedOrder[0]]++; } for (int i = 0; i < numCows; i++) { if (indegree[i] == 0) { q.push(i); } } while (q.size()) { int cow = q.front(); q.pop(); numCows--; ans.push_back(cow); for (auto& nextcow : adjenct[cow]) { if (--indegree[nextcow] == 0) { q.push(nextcow); } } } if (!numCows) return ans; return {}; } };