有 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 且 0 <= w <= 100。
class
solution
void
put(
int key,
int value)
intget
(int key)
boolean
containskey
(int key)
void
remove
(int key)
}//索引最小堆
class
minheap
private
void
swap
(int p1,
int p2)
private
void
sink
(int pos)
map.
put(heap[pos]
.end,pos);}
private
void
swim
(int pos)
map.
put(heap[pos]
.end,pos);}
public
void
add(
int end,
int weight)
public edge delmin()
public
void
change
(int vertex,
int weight)
public
boolean
isempty()
}class
edge
}public
class
graph
public
void
addedge
(int v1,
int v2,
int w)
}private graph build
(int
times,
int n)
class
dijkstra
}private
void
relax
(int v)}}
}public
intnetworkdelaytime
(int
times,
int n,
int k)
return res;
}}
743 網路延遲時間
題目 有n 個網路節點,標記為 1 到n。給定乙個列表 times,表示訊號經過有向邊的傳遞時間。times i u,v,w 其中 u 是源節點,v 是目標節點,w 是乙個訊號從源節點傳遞到目標節點的時間。現在,我們向當前的節點 k 傳送了乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節...
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 發出乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節點收到...