top面試201 課程表II

2021-10-09 03:43:10 字數 764 閱讀 2247

題目描述:

思路:拓撲排序,x1,x2,...xn,x1始終出現在xn的前面,不能出現在xn的後面,即不能存在環,就是一種拓撲排序。

給定乙個包含n個節點的有向圖g,我們給出它的節點編號的一種排列,如果滿足:對於圖g中的任意一條有向邊(u,v),u在排列

中都出現在v的前面。那麼稱該排列是圖g的「拓撲排序」。

在本題中,對圖進行一遍深度優先搜尋。當每個節點進行回溯的時候,我們把該節點放入棧中。最終從棧頂到棧底的序列就是一

中拓撲排序。

class solution 

//如果搜尋中,說明找到了環

else if(visited[v]==1)

}//將結點標記為已完成

visited[u]=2;

//將節點入棧

result.push_back(u);

}vectorfindorder(int numcourses, vector>& prerequisites)

//每次挑選乙個未搜尋的節點,進行深度優先搜尋

for(int i=0;i

if(!valid)

return {};

//將陣列反序輸出

reverse(result.begin(),result.end());

return result;}};

LeetCode題解 210 課程表 II

現在你總共有 n 門課需要選,記為 0 到 n 1。在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,返回你為了學完所有課程所安排的學習順序。可能會有多個正確的順序,你只要返回一種就可以了。如果不可能完...

LeetCode 210 課程表 II 中等

現在你總共有 n 門課需要選,記為 0 到 n 1。在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,返回你為了學完所有課程所安排的學習順序。可能會有多個正確的順序,你只要返回一種就可以了。如果不可能完...

題207 課程表

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