有 n 個網路節點,標記為 1 到 n。
給定乙個列表 times,表示訊號經過有向邊的傳遞時間。 times[i] = (u, v, w),其中 u 是源節點,v 是目標節點, w 是乙個訊號從源節點傳遞到目標節點的時間。
現在,我們從某個節點 k 發出乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節點收到訊號,返回 -1。
輸入:times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2
輸出:2
注意:n 的範圍在 [1, 100] 之間。
k 的範圍在 [1, n] 之間。
times 的長度在 [1, 6000] 之間。
所有的邊times[i] = (u, v, w) 都有 1 <= u, v <= n 且 0 <= w <= 100。
dijkstra演算法
題目目標是找源節點到各個節點最短時間的最大值,我們可以利用dijkstra演算法來求解最短時間。dijkstra演算法的思想核心是乙個點到另乙個點的最短路徑,要麼是直達,要麼是通過某條最短路徑間接到達。
詳細過程見**
class
disbool
operator
<
(const dis d)
const};
class
edge};
class
solution
} visit[k-1]
=1; mindistance[k-1]
=0;int ans =0;
while
(!pq.
empty()
)}}for
(int i=
0; i
)//有沒有到達的節點則返回-1if(
!visit[i]
)return-1
;return ans;}}
;
LeetCode 743 網路延遲問題
有 n 個網路節點,標記為 1 到 n。給定乙個列表 times,表示訊號經過有向邊的傳遞時間。times i u,v,w 其中 u 是源節點,v 是目標節點,w 是乙個訊號從源節點傳遞到目標節點的時間。現在,我們從某個節點 k 發出乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節點收到...
LeetCode 743 網路延遲時間
有 n 個網路節點,標記為 1 到 n。給定乙個列表 times,表示訊號經過有向邊的傳遞時間。times i u,v,w 其中 u 是源節點,v 是目標節點,w 是乙個訊號從源節點傳遞到目標節點的時間。現在,我們向當前的節點 k 傳送了乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節點...
LeetCode 743 網路延遲時間
有 n 個網路節點,標記為 1 到 n。給定乙個列表 times,表示訊號經過有向邊的傳遞時間。times i u,v,w 其中 u 是源節點,v 是目標節點,w 是乙個訊號從源節點傳遞到目標節點的時間。現在,我們從某個節點 k 發出乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節點收到...