將每個節點的耗費天數、前面的全部節點、後面的全部節點存起來,並且宣告一個 answer 變數預設為 0。
使用 DFS,需要的參數有目前的節點位置還有一個整數 weight 代表目前加起來所耗費的天數。每次進 DFS 時都要將 weight += 目前節點的耗費天數,並且要宣告一個 Map<int, int> ans 來存每個節點的最大耗費天數,每次都要更新 ans[目前節點],看是 ans[目前節點] 比較大還是 weight,更新值為較大者。然後,還要更新 answer 變數至最大值,和 ans[目前節點] 比較。
跑一個 For迴圈 將目前節點的所有「後面的節點」進行判斷,如果有節點可以走,亦代表其節點前面的點都走過了,就可以再呼叫新的 DFS。這邊可以再宣告一個 Map<int, int> 來判斷哪些的點已經走過了。
因為有可能會有多個圖的情況,所以呼叫 DFS 是要用 For迴圈 將每個節點做判斷再來呼叫 DFS,如果跑到的節點是起點,亦代表其前面沒有任何節點,就使用目前這個節點來呼叫 DFS。
最後要輸出的數值為 answer 變數。