leetcode练习 Course Schedul
来源:互联网 发布:怎么用python画图 编辑:程序博客网 时间:2024/06/06 08:24
最近一直是图论的学习,还是找一个图论的题目
There are a total of n courses you have to take, labeled from 0 to n - 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 about how a graph is represented.
You may assume that there are no duplicate edges in the input prerequisites.
一个很经典的拓扑排序,多余的话也就不说了,直接上代码
class Solution {public: bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) { vector<vector<int>> pre(numCourses); int N = prerequisites.size(); vector<int> inDegree(numCourses,0); for (int i=0;i<N;++i){ auto p = prerequisites[i]; inDegree[p.first]++; pre[p.second].push_back(p.first); } queue<int> que; for (int i=0;i<numCourses;++i){ if (inDegree[i]==0) que.push(i); } int count=0; while(!que.empty()){ int acc=que.front(); que.pop(); ++count; for (auto st:pre[acc]){ if (inDegree[st]==1){ que.push(st); } inDegree[st]--; } } return count==numCourses; }};
- leetcode练习 Course Schedul
- leetcode练习 Course Schedule II
- leetcode-Course Schedule
- LeetCode 207 - Course Schedule
- [LeetCode] Course Schedule
- LeetCode Course Schedule
- [leetcode] Course Schedule
- Leetcode Course Schedule
- [leetcode]Course Schedule
- leetcode:Course Schedule
- [leetcode]Course Schedule II
- leetcode - Course Schedule II
- LeetCode Course Schedule II
- [leetcode] Course Schedule II
- [leetcode]Course Schedule
- leetcode:Course Schedule II
- [LeetCode] Course Schedule II
- Leetcode Course Schedule II
- linux中的动态链接库和静态链接库
- notifyDataSetChanged无效
- mongodb 数据库封装DB类
- 记录一个BUG,用==赋值。。。GG
- code
- leetcode练习 Course Schedul
- 泛型委托
- Spring cloud oauth2 研究第N天
- springboot activemq 2 持久化消息 与 持久化订阅
- Oracle之index_desc索引之排序升降
- 常见排序算法-php 1.归并排序 $a = [1, 4, 6, 8, 10, 14, 16]; $b = [2, 3, 5, 8, 9, 11]; function merge_sort($a,
- 服务器使用Tomcat配置server.xml文件通过域名直接跳转到项目
- 数据库的发明者
- sftp error: Couldn't canonicalize