leetcode 787. Cheapest Flights Within K Stops | 787. K 站中转内最便宜的航班(BFS)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 787. Cheapest Flights Within K Stops | 787. K 站中转内最便宜的航班(BFS)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode.com/problems/cheapest-flights-within-k-stops/
題解
這題挺坑的實際上。DFS 超時了,因為涉及到步數限制 k,所以并不能加緩存,然后去看了答案。
答案給了一種 BFS 解法,看完思路我就開始一頓寫。
一開始是按照如果走回頭路的開銷比不走回頭路更小的話,就走回頭路這種思路來寫的。提交的時候發現,能不能走回頭路,這個問題會比較復雜。
回頭路是可以走的,但是不能簡單的用回頭路的開銷去覆蓋原有的開銷,因為在你走回頭路的時候,3步到①可能比2步到①的實際開銷更小,但你不能確定在之后剩余的步數中,哪種選擇更好。
說白了就是,當你還不能確定要不要走重復路線的時候,一維的dist不能同時保存走或不走兩種結果。
所以后來用了 int[2] 存儲[i,從src到i的距離。詳見注釋吧。
最后,貼一下混亂的草稿。
總結
以上是生活随笔為你收集整理的leetcode 787. Cheapest Flights Within K Stops | 787. K 站中转内最便宜的航班(BFS)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 思考:固态硬盘的普及,是否影响到了存储引
- 下一篇: leetcode 792. Number