日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode--207. 课程表

發布時間:2024/2/28 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode--207. 课程表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在你總共有?n?門課需要選,記為?0?到?n-1。

在選修某些課程之前需要一些先修課程。?例如,想要學習課程 0 ,你需要先完成課程 1 ,我們用一個匹配來表示他們:?[0,1]

給定課程總量以及它們的先決條件,判斷是否可能完成所有課程的學習?

示例 1:

輸入: 2, [[1,0]] 輸出: true 解釋:?總共有 2 門課程。學習課程 1 之前,你需要完成課程 0。所以這是可能的。

示例 2:

輸入: 2, [[1,0],[0,1]] 輸出: false 解釋:?總共有 2 門課程。學習課程 1 之前,你需要先完成?課程 0;并且學習課程 0 之前,你還應先完成課程 1。這是不可能的。

說明:

  • 輸入的先決條件是由邊緣列表表示的圖形,而不是鄰接矩陣。詳情請參見圖的表示法。
  • 你可以假定輸入的先決條件中沒有重復的邊。
  • 提示:

  • 這個問題相當于查找一個循環是否存在于有向圖中。如果存在循環,則不存在拓撲排序,因此不可能選取所有課程進行學習。
  • 通過 DFS 進行拓撲排序?- 一個關于Coursera的精彩視頻教程(21分鐘),介紹拓撲排序的基本概念。
  • 拓撲排序也可以通過?BFS?完成。

  • 我的正確代碼:

  • class Solution { public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {vector<int> G[numCourses]; //領接表int indegree[numCourses] = {0};for(int i = 0; i < prerequisites.size();i++){int u = prerequisites[i][1];int v = prerequisites[i][0]; indegree[v]++;G[u].push_back(v);}int num = 0;queue<int> q;for(int i = 0; i < numCourses; i++){if(indegree[i] == 0){q.push(i);}}while(!q.empty()){int top = q.front();q.pop();for(int i = 0; i < G[top].size(); i++){int v = G[top][i];indegree[v]--;if(indegree[v] == 0){q.push(v);}}G[top].clear();num++;}if(num == numCourses) return true;else return false;} };

    ?

    總結

    以上是生活随笔為你收集整理的leetcode--207. 课程表的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。