LeetCode *** 207. Course Schedule (Topological Sort )
来源:互联网 发布:ps mac版多少钱 编辑:程序博客网 时间:2024/06/18 14:04
题目:
There are a total of n courses you have to take, labeled from 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, is it possible for you to finish all courses?
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 it is possible.
2, [[1,0],[0,1]]
There are a total of 2 courses to take. To take course 1 you should have finished course 0, and to take course 0 you should also have finished course 1. So it is impossible.
Note:
The input prerequisites is a graph represented by a list of edges, not adjacency matrices. Read more abouthow a graph is represented.
分析:
细节决定成败。。。
代码:
class Solution {public: bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) { int needed[numCourses]={}; int size=prerequisites.size(); stack<int> stk; for(int i=0;i<size;++i) needed[prerequisites[i].first]++; for(int i=0;i<numCourses;++i)if(!needed[i])stk.push(i); vector<pair<int,int>>::iterator it; while(!stk.empty()&&!prerequisites.empty()){ int rec=stk.top(); stk.pop(); it=prerequisites.begin(); while(it!=prerequisites.end()){ if((*it).second==rec){ needed[(*it).first]--; if(!needed[(*it).first])stk.push((*it).first); it=prerequisites.erase(it); } else ++it; } } return prerequisites.empty(); }};
- LeetCode *** 207. Course Schedule (Topological Sort )
- 210. Course Schedule II(Topological Sort)
- [leetcode] 207.Course Schedule
- Leetcode 207. Course Schedule
- 207. Course Schedule LeetCode
- leetcode 207. Course Schedule
- leetcode.207. Course Schedule
- LeetCode 207. Course Schedule
- 【LeetCode】207. Course Schedule
- [leetcode] 207. Course Schedule
- leetcode-207. Course Schedule
- leetcode 207. Course Schedule
- [LeetCode] 207. Course Schedule
- 【Leetcode】207. Course Schedule
- Leetcode 207. Course Schedule
- LeetCode 207.Course Schedule
- Leetcode 207. Course Schedule
- Leetcode 207. Course Schedule
- 山东省第五届ACM大学生程序设计竞赛-Weighted Median(模拟)
- HDU 1540 Tunnel Warfare(区间合并)
- 各种有关文件的对话框的创建方法
- java时间戳正序和倒序
- Java EE -> Get与Post 编码问题
- LeetCode *** 207. Course Schedule (Topological Sort )
- [firefox+plug-n-hack]轻松地配置burpsuite代理https流量 - 20160318
- 学习资源(均为转载内容)
- ElasticSearch性能优化策略
- 虚函数与纯虚函数
- 三和韓長庚 著 易學原理總論 對讀 021_040
- 搭建(win7)eclipse远程操作(Linux上)hadoop2.6.0_出错集
- 反编译流程
- 剑指offer之面试题13:在O(1)时间删除链表节点