題目連結:
題目意譯:
現在你總共有 numCourses 堂課必須修,編號為 0 到 numCourses - 1。你被給定一個陣列 prerequisites,其中 prerequisites[i] = [ai, bi] 代表著如果你想要修課堂 ai,則你需要先修完課程 bi。
例如,數對 [0, 1],代表著在修課程 0 之前你需要先完成課程 1。
如果你可以完成所有課程則回傳真(True);反之,回傳假(False)。
限制:
1 ≦ numCourses ≦ 2000
0 ≦ prerequisites.length ≦ 5000
prerequisites[i].length == 2
0 ≦ ai, bi < numCourses
所有 prerequisites[i] 中數對皆相異。
範例測資:
範例 1:
輸入: numCourses = 2, prerequisites = [[1,0]]
輸出: true
解釋: 總共有 2 堂課要修。
為了修得課程 1 你需要先修完課程 0。所以是可能完成所有課程的。
範例 2:
輸入: numCourses = 2, prerequisites = [[1,0],[0,1]]
輸出: false
解釋: 總共有 2 堂課要修。
為了修得課程 1 你需要先修完課程 0。而為了修得課程 0 你需要先修完課程 1。所以這是不可能的。
解題思維:
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。