已知有 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...