Beispiel #1
0
 bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) {
     // 本质上,相当于判断有向图中是否有环
     // 如果有环,则不能完成所有课程
     
     // corner case
     if (numCourses <= 0) return true;
     
     // build the graph
     DirectedGraph graph = buildGraph(numCourses, prerequisites);
     
     // detect cycle
     return !graph.detectCycle();
 }