diff --git a/Graphs/CourseSchedule-I.cpp b/Graphs/CourseSchedule-I.cpp new file mode 100644 index 0000000..be74b70 --- /dev/null +++ b/Graphs/CourseSchedule-I.cpp @@ -0,0 +1,39 @@ +class Solution { +public: + bool canFinish(int numCourses, vector>& prerequisites) { + vectoradj[numCourses]; + for(auto i:prerequisites){ + adj[i[0]].push_back(i[1]); + } + vectorindegree(numCourses,0); + for(int i=0;iq; + for(int i=0;itopo; + while(!q.empty()){ + int node=q.front(); + q.pop(); + topo.push_back(node); + + for(auto it:adj[node]){ + indegree[it]--; + if(indegree[it]==0){ + q.push(it); + } + } + } + + if(topo.size()==numCourses){ + return true; + } + return false; + } +};