Back to all solutions
#1665 - Minimum Initial Energy to Finish Tasks
Problem Description
You are given an array tasks where tasks[i] = [actuali, minimumi]:
- actuali is the actual amount of energy you spend to finish the ith task.
- minimumi is the minimum amount of energy you require to begin the ith task.
For example, if the task is [10, 12] and your current energy is 11, you cannot start this task. However, if your current energy is 13, you can complete this task, and your energy will be 3 after finishing it.
You can finish the tasks in any order you like.
Return the minimum initial amount of energy you will need to finish all the tasks.
Solution
/**
* @param {number[][]} tasks
* @return {number}
*/
var minimumEffort = function(tasks) {
tasks.sort((a, b) => (b[1] - b[0]) - (a[1] - a[0]));
let result = 0;
let currentEnergy = 0;
for (const [actual, minimum] of tasks) {
if (currentEnergy < minimum) {
result += minimum - currentEnergy;
currentEnergy = minimum;
}
currentEnergy -= actual;
}
return result;
};