207. Course Schedule LeetCode
2016-03-16 15:09
274 查看
题意:有n门课,给出所有课的先修课程,问能不能按照一个顺序把所有课上完。
题解:典型的拓扑排序。
题解:典型的拓扑排序。
class Solution { public: bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) { bool g[numCourses+1][numCourses+1]; int d[numCourses+1]; bool vis[numCourses+1]; memset(g,false,sizeof(g)); memset(d,0,sizeof(d)); memset(vis,false,sizeof(vis)); for(int i = 0; i < prerequisites.size(); i++) { int u = prerequisites[i].first; int v = prerequisites[i].second; if(!g[v][u]) g[v][u] = true,d[u]++; } queue<int> q; while(!q.empty()) q.pop(); for(int i = 0; i < numCourses; i++) if(!d[i]) q.push(i),vis[i] = true; while(!q.empty()) { int now = q.front(); q.pop(); for(int i = 0; i < numCourses; i++) { if(g[now][i]) d[i]--; if(!vis[i] && !d[i]) q.push(i),vis[i] = true;; } } for(int i = 0; i < numCourses; i++) if(d[i]) return false; return true; } };
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解