題207 課程表

2021-10-06 00:13:23 字數 910 閱讀 6553

你這個學期必須選修 numcourse 門課程,記為 0 到 numcourse-1 。

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

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

①統計課程安排圖中每個節點的入度,生成入度表 rd;

②借助乙個佇列 queue,將所有入度為0的節點入隊;

③當 queue 非空時,依次將隊首節點出隊,在課程安排圖中刪除此節點;

④若整個課程安排圖是有向無環圖,則所有節點一定都入隊並出隊過,即完成拓撲排序。換個角度說,若課程安排圖中存在環,一定有節點的入度始終不為 0。

因此,拓撲排序出隊次數等於課程個數,返回 count==numcourses?true:false; 判斷課程是否可以成功安排。

public

class

solution

queue

queue=

newlinkedlist

<

>()

;//定義乙個佇列用來儲存先修課學完的課程

for(

int j=

0;jint count=0;

while

(!queue.

isempty()

)//佇列非空,還有課程待學}}

count++

;//記錄學了的課程

}return count==numcourses?

true

:false

;//學完的課程等於總的課程即完成任務,反之則反

LeetCode題解 207 課程表

現在你總共有 n 門課需要選,記為 0 到 n 1。在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,判斷是否可能完成所有課程的學習?示例 1 輸入 2,1,0 輸出 true 解釋 總共有 2 門課程...

LeetCode 拓撲排序 207 課程表

難度中等 你這個學期必須選修 numcourse 門課程,記為 0 到 numcourse 1 在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,請你判斷是否可能完成所有課程的學習?示例1 輸入 2,1...

《拓撲排序》207 課程表《leetcode》

難度中等656 你這個學期必須選修numcourse門課程,記為0到numcourse 1。在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,請你判斷是否可能完成所有課程的學習?示例 1 輸入 2,1,...