使用 Map<int, Map<int, int>> 來紀錄每一個零件的前後有哪些零件。收完資料之後跑迴圈判斷哪一個零件沒有前面所需的零件,就宣告一個 Map<int, int> 來紀錄等一下 BFS 的起點,將其的 Map 值 ++。跑完迴圈之後就跑 BFS。
在 BFS 中,會需要一個 Map<int, int> start 來紀錄起點,並且宣告一個 Map<int, int> push 來紀錄已經使用過哪些點了。宣告一個 While 迴圈,當 start.size() == 0 時就結束迴圈,裡面要判斷 start 的第一個資料是什麼,並且將其刪除,還需判斷其的前面還有沒有需要用的零件還沒用。如果都通過的話就將其輸出。