20241024 finished.

This commit is contained in:
2024-10-24 09:08:13 +08:00
parent 3102da99a8
commit bce8de1c85
266 changed files with 2321 additions and 2014 deletions

View File

@@ -3,13 +3,12 @@
*/
pub struct Solution {}
// submission codes start here
impl Solution {
pub fn num_buses_to_destination(routes: Vec<Vec<i32>>, source: i32, target: i32) -> i32 {
use std::collections::{VecDeque, HashMap};
use std::collections::{HashMap, VecDeque};
if source == target {
return 0;
}
@@ -36,13 +35,13 @@ impl Solution {
let mut distances = vec![-1; n];
let mut queue = VecDeque::new();
if let Some(source_buses) = map.get(&source) {
for &bus in source_buses {
distances[bus] = 1;
queue.push_back(bus);
queue.push_back(bus);
}
} else {
} else {
// 没有任何公交车经过起始站点
return -1;
}
@@ -64,14 +63,14 @@ impl Solution {
for &bus in target_buses {
result = result.min(distances[bus]);
}
} else {
} else {
// 没有任何公交车经过终点站点
return -1;
}
if result == i32::MAX {
-1
} else {
} else {
result
}
}
@@ -85,6 +84,9 @@ mod tests {
#[test]
fn test_815() {
assert_eq!(2, Solution::num_buses_to_destination(vec![vec![1, 2, 7], vec![3, 6, 7]], 1, 6));
assert_eq!(
2,
Solution::num_buses_to_destination(vec![vec![1, 2, 7], vec![3, 6, 7]], 1, 6)
);
}
}