20241125 finished.
This commit is contained in:
parent
e2fa2aaac6
commit
6c9151aa2c
|
@ -1,44 +1,9 @@
|
||||||
/**
|
/**
|
||||||
* [743] Network Delay Time
|
* [743] Network Delay Time
|
||||||
*
|
|
||||||
* You are given a network of n nodes, labeled from 1 to n. You are also given times, a list of travel times as directed edges times[i] = (ui, vi, wi), where ui is the source node, vi is the target node, and wi is the time it takes for a signal to travel from source to target.
|
|
||||||
* We will send a signal from a given node k. Return the minimum time it takes for all the n nodes to receive the signal. If it is impossible for all the n nodes to receive the signal, return -1.
|
|
||||||
*
|
|
||||||
* <strong class="example">Example 1:
|
|
||||||
* <img alt="" src="https://assets.leetcode.com/uploads/2019/05/23/931_example_1.png" style="width: 217px; height: 239px;" />
|
|
||||||
* Input: times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2
|
|
||||||
* Output: 2
|
|
||||||
*
|
|
||||||
* <strong class="example">Example 2:
|
|
||||||
*
|
|
||||||
* Input: times = [[1,2,1]], n = 2, k = 1
|
|
||||||
* Output: 1
|
|
||||||
*
|
|
||||||
* <strong class="example">Example 3:
|
|
||||||
*
|
|
||||||
* Input: times = [[1,2,1]], n = 2, k = 2
|
|
||||||
* Output: -1
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* Constraints:
|
|
||||||
*
|
|
||||||
* 1 <= k <= n <= 100
|
|
||||||
* 1 <= times.length <= 6000
|
|
||||||
* times[i].length == 3
|
|
||||||
* 1 <= ui, vi <= n
|
|
||||||
* ui != vi
|
|
||||||
* 0 <= wi <= 100
|
|
||||||
* All the pairs (ui, vi) are unique. (i.e., no multiple edges.)
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
pub struct Solution {}
|
pub struct Solution {}
|
||||||
|
|
||||||
// problem: https://leetcode.cn/problems/network-delay-time/
|
|
||||||
// discuss: https://leetcode.cn/problems/network-delay-time/discuss/?currentPage=1&orderBy=most_votes&query=
|
|
||||||
|
|
||||||
// submission codes start here
|
// submission codes start here
|
||||||
|
|
||||||
use std::cmp::{max, min};
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
|
||||||
impl Solution {
|
impl Solution {
|
||||||
|
@ -91,7 +56,7 @@ impl Solution {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
distances[i] = min(distances[i], value + matrix[index][i]);
|
distances[i] = distances[i].min(value + matrix[index][i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,10 +67,14 @@ impl Solution {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = max(result, distances[i]);
|
result = result.max(distances[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return if result == i32::MAX { -1 } else { result };
|
if result == i32::MAX {
|
||||||
|
-1
|
||||||
|
} else {
|
||||||
|
result
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user