現在你總共有 n 門課需要選,記為 0 到 n - 1.
一些課程在修之前需要先修另外的一些課程,比如要學習課程 0 你需要先學習課程 1 ,表示為[0,1]
給定n門課以及他們的先決條件,判斷是否可能完成所有課程?
樣例例1:
輸入: n =
2, prerequisites =[[
1,0]
] 輸出:
true例2:
輸入: n =
2, prerequisites =[[
1,0]
,[0,
1]] 輸出:
false
一段沒有想到給出的課程有10000多門而導致超時的**
class
solution
for(
int i =
0; i < numcourses; i++
)while
(!q.
empty()
)}}for
(int i =
0; i < numcourses; i++
)return
true;}
};
正確**:如拓撲排序一樣,先建立圖的聯絡,然後bfs即可
class
solution};
bool
canfinish
(int numcourses, vectorint,
int>>
& prerequisites)
queue q;
for(
int i =
0; i < numcourses; i++)}
while
(!q.
empty()
)}}return cnt==numcourses;}}
;
題207 課程表
你這個學期必須選修 numcourse 門課程,記為 0 到 numcourse 1 在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,請你判斷是否可能完成所有課程的學習?統計課程安排圖中每個節點的入度...
LeetCode題解 207 課程表
現在你總共有 n 門課需要選,記為 0 到 n 1。在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,判斷是否可能完成所有課程的學習?示例 1 輸入 2,1,0 輸出 true 解釋 總共有 2 門課程...
LeetCode題解 210 課程表 II
現在你總共有 n 門課需要選,記為 0 到 n 1。在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,返回你為了學完所有課程所安排的學習順序。可能會有多個正確的順序,你只要返回一種就可以了。如果不可能完...