LeetCode 1136 平行課程(拓撲排序)

2021-10-08 23:33:08 字數 1130 閱讀 6693

已知有 n 門課程,它們以 1 到 n 進行編號。

給你乙份課程關係表 relations[i] = [x, y],用以表示課程 x 和課程 y 之間的先修關係:課程 x 必須在課程 y 之前修完。

假設在乙個學期裡,你可以學習任何數量的課程,但前提是你已經學習了將要學習的這些課程的所有先修課程。

請你返回學完全部課程所需的最少學期數

如果沒有辦法做到學完全部這些課程的話,就返回 -1。

輸入:n =

3, relations =[[

1,3]

,[2,

3]]輸出:2

解釋:在第乙個學期學習課程 1 和 2,在第二個學期學習課程 3。

輸入:n =

3, relations =[[

1,2]

,[2,

3],[

3,1]

]輸出:-

1解釋:

沒有課程可以學習,因為它們相互依賴。 1

<= n <=

5000

1<= relations.length <=

5000

relations[i][0

]!= relations[i][1

]輸入中沒有重複的關係

拓撲排序:圖graph–拓撲排序(topological sorting)

class

solution

queue<

int> q;

int cur, size, sum =

0, finish =0;

for(

int i =

1; i <= n;

++i)

if(indegree[i]==0

) q.

push

(i);

while

(!q.

empty()

)}sum++;}

return finish==n ? sum :-1

;}};

148 ms 26.3 mb

我的csdn部落格位址

路徑總和(leetcode 113)

給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。傳送門 說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,思路 從根節點開始,分別遍歷左右子樹,如果到達葉子節點且滿足路徑之和等於sum,則加入到結果中 1 2 definition...

leetcode 113 路徑之和

給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 思路 二叉樹的深度優先遍歷,在遍歷的過程中記錄當前...

leetcode 113 路徑總和 II

題目描述 給定乙個二叉樹和乙個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 4 8 11 13 4 7 2 5 1返回 5,4,11,2 5,8,4,5 class solution void h...