有n
個網路節點,標記為1
到n
。
給定乙個列表times
,表示訊號經過有向邊的傳遞時間。times[i] = (u, v, w)
,其中u
是源節點,v
是目標節點,w
是乙個訊號從源節點傳遞到目標節點的時間。
現在,我們向當前的節點k
傳送了乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節點收到訊號,返回-1
。
注意:
n
的範圍在[1, 100]
之間。
k
的範圍在[1, n]
之間。
times
的長度在[1, 6000]
之間。
所有的邊times[i] = (u, v, w)
都有1 <= u, v <= n
且1 <= w <= 100
。
思路:
先將所有除了起始點的時間設為999999999,然後將初始點的時間設為0,然後開始無限迴圈,核心迴圈內容為:判斷第乙個節點的時間是否為999999999,如果不為,說明已經連通了,將第二個節點的時間變成min(第二個節點的時間,第乙個節點的時間+一二節點直接的時間)。迴圈中止條件:這輪迴圈中沒有任何值有改變。
**:
class solution {
public:
int networkdelaytime(vector>& times, int n, int k) {
vectorv(n+1,999999999);//所有初始時間設為999999999,代表沒有連通
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 發出乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節點收到...