Skip to content

Commit 7ed7584

Browse files
committed
car problem
1 parent 514d43e commit 7ed7584

File tree

3 files changed

+49
-4
lines changed

3 files changed

+49
-4
lines changed

src/car_fleet.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
use std::cmp::Reverse;
2+
3+
pub struct Solution {}
4+
5+
impl Solution {
6+
pub fn car_fleet(target: i32, position: Vec<i32>, speed: Vec<i32>) -> i32 {
7+
let mut pos_speed: Vec<(i32, i32)> = position.into_iter().zip(speed.into_iter()).collect();
8+
let mut stack: Vec<f64> = Vec::new();
9+
pos_speed.sort_by_key(|&(a, _)| Reverse(a));
10+
for val in pos_speed {
11+
let time = (target - val.0) as f64 / val.1 as f64;
12+
if stack.is_empty() {
13+
stack.push(time);
14+
} else {
15+
let top = stack.last().unwrap();
16+
if &time > top {
17+
stack.push(time);
18+
}
19+
}
20+
}
21+
stack.len() as i32
22+
}
23+
}

src/container_with_most_water.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
pub struct Solution {}
2+
3+
impl Solution {
4+
pub fn max_area(height: Vec<i32>) -> i32 {
5+
let mut rp: usize = height.len() - 1;
6+
let mut lp: usize = 0;
7+
let mut max: i32 = 0;
8+
while rp > lp {
9+
let area = (rp - lp) as i32 * std::cmp::min(height[lp], height[rp]);
10+
if area > max {
11+
max = area;
12+
}
13+
if height[lp] < height[rp] {
14+
lp += 1;
15+
} else {
16+
rp -= 1;
17+
}
18+
}
19+
max
20+
}
21+
}

src/main.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
mod daily_temperatures;
2-
use daily_temperatures::Solution;
1+
mod car_fleet;
2+
use car_fleet::Solution;
33

44
fn main() {
5-
let values = vec![73, 74, 75, 71, 69, 72, 76, 73];
6-
let result = Solution::daily_temperatures(values);
5+
let position = vec![10, 8, 0, 5, 3];
6+
let speed = vec![2, 4, 1, 1, 3];
7+
let result = Solution::car_fleet(12, position, speed);
78
print!("{:?}", result);
89
}

0 commit comments

Comments
 (0)