20241125 finished.

This commit is contained in:
jackfiled 2024-11-25 11:00:23 +08:00
parent e2fa2aaac6
commit 6c9151aa2c

View File

@ -1,44 +1,9 @@
/**
* [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 {}
// 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
use std::cmp::{max, min};
use std::collections::HashSet;
impl Solution {
@ -91,7 +56,7 @@ impl Solution {
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;
}
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
}
}
}