Leetcode(207)Course Schedule (210)Course Schedule II
2016-10-13 15:23
429 查看
题目:
207 Course Schedule 课程之间有先修和后修的关系限制,判断是否能修完所有课程。即判断有向图是否有环。
210 Course Schedule II 课程之间有先修和后修的关系限制,给出一种满足限制的顺序,不存在的返回空vector。即给出有向图的拓扑排序。
解法:拓扑排序。
代码:
207 Course Schedule 课程之间有先修和后修的关系限制,判断是否能修完所有课程。即判断有向图是否有环。
210 Course Schedule II 课程之间有先修和后修的关系限制,给出一种满足限制的顺序,不存在的返回空vector。即给出有向图的拓扑排序。
解法:拓扑排序。
代码:
class Solution { public: vector<int> findOrder(int numCourses, vector<pair<int, int>>& prerequisites) { vector<vector<int> > adj(numCourses); vector<int> indegree(numCourses); queue<int> que; vector<int> order; for(int i=0;i<prerequisites.size();i++) { adj[prerequisites[i].second].push_back(prerequisites[i].first); indegree[prerequisites[i].first]++; } for(int i=0;i<numCourses;i++) { if(indegree[i]==0) que.push(i); } while(!que.empty()) { int cur=que.front();que.pop(); order.push_back(cur); for(int i=0;i<adj[cur].size();i++) { indegree[adj[cur][i]]--; if(indegree[adj[cur][i]]==0) que.push(adj[cur][i]); } } if(order.size()==numCourses) return order; else return vector<int>(); } };
相关文章推荐
- [LeetCode] Course Schedule I (207) & II (210) 解题思路
- LeetCode 210 Course Schedule II
- LeetCode 210 Course Schedule II
- LeetCode 210 - Course Schedule II
- LeetCode 210 - Course Schedule II
- Java for LeetCode 210 Course Schedule II
- Leetcode210-Course Schedule II
- Leetcode 210 Course Schedule II 拓扑排序
- leetcode 210: Course Schedule II
- [leetcode-210]course scheduleII(java)
- leetcode 210: Course Schedule II
- Leetcode-210(Java) Course Schedule II
- Leetcode 210 Course Schedule II 课程表II
- [LeetCode#210]Course Schedule II
- Leetcode 210 Course Schedule II
- Leetcode-210: Course Schedule II
- leetcode210——Course Schedule II
- week13-leetcode #210-Course-Schedule-II
- leetcode_c++:图:Course Schedule II (207)
- leetcode@ [210]Course Schedule II