leetcode 207课程表
生活随笔
收集整理的這篇文章主要介紹了
leetcode 207课程表
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
class Solution { public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {//驗(yàn)證是否為DAG,每次驗(yàn)證指向的是否已經(jīng)存在于當(dāng)前圖中//建圖vector<int> indegree(numCourses,0);//入度vector<vector<int>> graph(numCourses,vector(0,0));//鄰接表for(int i=0;i<prerequisites.size();i++){indegree[prerequisites[i][1]]++;graph[prerequisites[i][0]].push_back(prerequisites[i][1]);}//顯示圖showgraph(graph,numCourses);//BFSqueue<int> q;for(int i=0;i<numCourses;i++){if(indegree[i]==0){q.push(i);}}//將入度為0的點(diǎn)且未訪問過的進(jìn)入set,然后將其后繼的入度全部減一,循環(huán)執(zhí)行int cnt=0;while(!q.empty()){int front=q.front();q.pop();cnt++;for(int j=0;j<graph[front].size();j++){int v=graph[front][j];indegree[v]--;if(indegree[v]==0){q.push(v);}}}return cnt==numCourses;//當(dāng)有環(huán)時(shí),總有一些點(diǎn)入度不能減到0,因此不能完全bfs遍歷 } private:void showgraph(vector<vector<int>>& graph,int numCourses){for(int i=0;i<numCourses;i++){cout<<i<<": ";for(int j=0;j<graph[i].size();j++){cout<<graph[i][j]<<",";}cout<<endl;}} };?
轉(zhuǎn)載于:https://www.cnblogs.com/joelwang/p/11078426.html
總結(jié)
以上是生活随笔為你收集整理的leetcode 207课程表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: K60学习笔记(二)——FTM多功能定时
- 下一篇: 能源路由器入门必读:面向能源互联网的架构