Leetcode 743 網路延遲時間 C

2021-10-08 17:52:55 字數 1097 閱讀 7117

有 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 發出乙個訊號。需要多久才能使所有節點都收到訊號?如果不能使所有節點收到...