條件限制:
Dijkstra 適用的 graph 中,不可以有負權重的邊。
流程:
選擇一個起點,以下圖為例,我們假設起點為第 0 點
將起點「直接相鄰」的節點權重視為最短路徑長,其他結點的路徑長則視為無限大。
選取距離最近的節點,如 0→1 與 0→2 兩條路徑,選擇第1點目前路徑較短的開始看,由於不可能有其他路徑比當前的更短了(因為圖中無負權重,要從其他節點過來一定會更遠),我們可以確定此距離就是真正的最短距離。
從當前選取的節點(第1點)出發前往其他節點(相鄰的點有2與3),如果能比已知的路徑長更短(0→2原本紀錄為4,0→1→2=3,選最短路徑的3),就更新已知的路徑長;如果需要知道最短路徑的確切節點,可以在更新時一併紀錄前一節點。
參考資料:https://ithelp.ithome.com.tw/articles/10209593
參考資料:https://ithelp.ithome.com.tw/articles/10238059
可以求 Graph 中兩點之間的最短路徑。
題目連結:https://leetcode.com/problems/path-with-maximum-probability/
題目敘述
測資的 Input/Output
題目的條件