class Solution { private: unordered_map suppHash; unordered_map > ing_2_rec; public: vector findAllRecipes(vector& recipes, vector>& ingredients, vector& supplies) { unordered_map count; //建图 for(int i=0;i q; vector ans; for(auto sup:supplies) {q.push(sup); } //BFS while(!q.empty()) { string cur=q.front(); q.pop(); for(auto son:ing_2_rec[cur]) { count[son]--; if(count[son]==0) { q.push(son); ans.push_back(son); } } } return ans; } };