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