公告歡迎來到 Larry's notes,近期會持續整理網站。
※ LeetCode, UVa 與 YZUCSE 系列相關文章已從首頁的文章列表中移除。可從首頁的釘選分類瀏覽。
※ LeetCode, UVa 與 YZUCSE 系列相關文章已從首頁的文章列表中移除。可從首頁的釘選分類瀏覽。
LeetCode - 207 解題紀錄
題目: LeetCode - 207. Course Schedule
題目說明
給一個整數 numCourses 表示必須要修的課的數量,課程編號 0 ~ numCourses - 1,和一個二維陣列 prerequisites,裡面每個陣列含有兩個課程編號的數字,如 [0, 1] 表修課程 0 前需要先修完課程 1。求符合 prerequisites 的條件下是否能修完所有的課程。
解題思路
Topological Sort 類型的題目,先記錄每堂課需要修多少先修課,並以先修課為 Index 紀錄以此課為先修課的課號。
建立一個 Queue 並將不需要修先修課的課放入,之後一一取出,取出時更新每堂課需要修多少先修課的數量,當遇到需要先修課數量為 0 時將其課放入 Queue 中。
循環結束時表所有能修的課皆已修完,此時檢查若還有課需要修先修課,表有 loop 無法修完所有課。
參考解法
1 | class Solution { |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論