Minimum Time to Complete Trips LeetCode solution in Rust

1
impl Solution {
2
pub fn minimum_time(time: Vec<i32>, total_trips: i32) -> i64 {
3
let total_trips = total_trips as i64;
4
let mut max_time = time.iter().min().unwrap().clone() as i64 * total_trips;
5
let mut min_time = 1 as i64;
6

7
while min_time < max_time {
8
let mid_time = (min_time + max_time) / 2;
9
let trips = time.iter().fold(0, |subtotal, trip_time| {
10
subtotal + mid_time / trip_time.clone() as i64
11
});
12

13
if trips < total_trips {
14
min_time = mid_time + 1;
15
} else {
16
max_time = mid_time;
17
}
18
}
19

20
min_time
21
}
22
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0