leetcode.210. Course Schedule II
来源:互联网 发布:淘宝鹊桥下载 编辑:程序博客网 时间:2024/05/28 05:17
0
ton - 1
.Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair:[0,1]
Given the total number of courses and a list of prerequisite pairs, return the ordering of courses you should take to finish all courses.
There may be multiple correct orders, you just need to return one of them. If it is impossible to finish all courses, return an empty array.
For example:
2, [[1,0]]
There are a total of 2 courses to take. To take course 1 you should have finished course 0. So the correct course order is[0,1]
4, [[1,0],[2,0],[3,1],[3,2]]
There are a total of 4 courses to take. To take course 3 you should have finished both courses 1 and 2. Both courses 1 and 2 should be taken after you finished course 0. So one correct course order is[0,1,2,3]
. Another correct ordering is[0,2,1,3]
.
class Solution {public: vector<int> findOrder(int numCourses, vector<pair<int, int>>& prerequisites) { map<int,int> count; vector<int> res; for(int i=0;i<numCourses;i++){ count[i]=0; } for(int i=0;i<prerequisites.size();i++){ count[prerequisites[i].first]++; //计算入度 } queue<int> que; for(int i=0;i<count.size();i++){ if(count[i]==0){ que.push(i); //将入度为零的点压入队列 res.push_back(i); } } while(!que.empty()){ int cur=que.front(); que.pop(); for(int i=0;i<prerequisites.size();i++){ if(prerequisites[i].second==cur){ count[prerequisites[i].first]--; if(count[prerequisites[i].first]==0){ que.push(prerequisites[i].first); res.push_back(prerequisites[i].first); } } } } if(res.size()==numCourses) return res; vector<int> ans; return ans; }};
- [leetcode] 210.Course Schedule II
- Leetcode 210. Course Schedule II
- 210. Course Schedule II LeetCode
- leetcode 210. Course Schedule II
- LeetCode *** 210. Course Schedule II
- leetcode.210. Course Schedule II
- LeetCode 210. Course Schedule II
- 【LeetCode】210. Course Schedule II
- Leetcode 210. Course Schedule II
- LeetCode 210. Course Schedule II
- Leetcode 210. Course Schedule II
- [LeetCode]210. Course Schedule II
- leetcode 210. Course Schedule II
- LeetCode 210. Course Schedule II
- LeetCode 210. Course Schedule II
- 【LeetCode】210. Course Schedule II
- [leetcode]210. Course Schedule II
- leetcode 210. Course Schedule II
- 使用TextView实现跑马灯的效果
- 2013年第四届蓝桥杯C/C++程序设计本科B组决赛 连续奇数和(结果填空)
- C#界面闪烁问题解决方案
- hdu1848Fibonacci again and again
- 打印乘法口诀表
- leetcode.210. Course Schedule II
- 静态初始化块,普通初始化块,构造器的执行顺序
- 百度之星热身赛
- extern 和static学习
- java RMI
- 下拉刷新+上拉加载+xml解析
- 优秀工程师系列:选择与努力
- 【水题】HDU1014Uniform Generator
- ajax获取数据,应该返回json用js拼接 还是在后台拼接HTML完再返回