20241024 finished.
This commit is contained in:
@@ -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)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user