Minimum Initial Energy to Finish Tasks LeetCode solution in Rust

1
impl Solution {
2
pub fn minimum_effort(tasks: Vec<Vec<i32>>) -> i32 {
3
let mut extras = Vec::new();
4
for task in tasks.iter() {
5
extras.push(task[1] - task[0]);
6
}
7
let mut indices = (0..tasks.len()).collect::<Vec<_>>();
8
indices.sort_by_key(|&i| -&extras[i]);
9
let (mut min_energy, mut cur_cost) = (0, 0);
10
for &idx in indices.iter() {
11
cur_cost += tasks[idx][0];
12
let ene = cur_cost + extras[idx];
13
if min_energy < ene {
14
min_energy = ene;
15
}
16
}
17
min_energy
18
}
19
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0