Watch 7 video solutions for Minimum Initial Energy to Finish Tasks, a hard level problem involving Array, Greedy, Sorting. This walkthrough by EasyLeetcode has 1,893 views views. Want to try solving it yourself? Practice on FleetCode or read the detailed text solution.
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.
Example 1:
Input: tasks = [[1,2],[2,4],[4,8]]
Output: 8
Explanation:
Starting with 8 energy, we finish the tasks in the following order:
- 3rd task. Now energy = 8 - 4 = 4.
- 2nd task. Now energy = 4 - 2 = 2.
- 1st task. Now energy = 2 - 1 = 1.
Notice that even though we have leftover energy, starting with 7 energy does not work because we cannot do the 3rd task.
Example 2:
Input: tasks = [[1,3],[2,4],[10,11],[10,12],[8,9]]
Output: 32
Explanation:
Starting with 32 energy, we finish the tasks in the following order:
- 1st task. Now energy = 32 - 1 = 31.
- 2nd task. Now energy = 31 - 2 = 29.
- 3rd task. Now energy = 29 - 10 = 19.
- 4th task. Now energy = 19 - 10 = 9.
- 5th task. Now energy = 9 - 8 = 1.
Example 3:
Input: tasks = [[1,7],[2,8],[3,9],[4,10],[5,11],[6,12]]
Output: 27
Explanation:
Starting with 27 energy, we finish the tasks in the following order:
- 5th task. Now energy = 27 - 5 = 22.
- 2nd task. Now energy = 22 - 2 = 20.
- 3rd task. Now energy = 20 - 3 = 17.
- 1st task. Now energy = 17 - 1 = 16.
- 4th task. Now energy = 16 - 4 = 12.
- 6th task. Now energy = 12 - 6 = 6.
Constraints:
1 <= tasks.length <= 1051 <= actuali <= minimumi <= 104Problem Overview: You are given tasks where each task has two values: the actual energy spent to complete it and the minimum energy required to start it. The goal is to determine the minimum initial energy needed so you can complete every task in some order without your energy dropping below the required threshold.
Approach 1: Binary Search for Minimum Energy (O(n log n) time, O(1) space)
This approach treats the answer as a search space. Assume a candidate starting energy and simulate whether all tasks can be completed. To maximize feasibility, sort tasks so those with the largest gap between minimumRequired and actualCost are handled first. For each candidate value, iterate through tasks, check if current energy satisfies the minimum requirement, and subtract the actual cost. Binary search narrows the smallest starting energy that passes the simulation. Sorting dominates the runtime, resulting in O(n log n) time with constant extra space.
Approach 2: Greedy Sorting by Energy Surplus (O(n log n) time, O(1) space)
The key insight: tasks with a larger difference between required energy and actual cost are more restrictive and should be executed earlier. Sort tasks by (minimumRequired - actualCost) in descending order. Then iterate through the sorted tasks while maintaining your current energy. If the current energy is less than the task's required minimum, increase the initial energy so the requirement is satisfied. After completing the task, subtract its actual cost. This greedy ordering ensures you never face a task later that requires more upfront energy than you can afford. The sort step takes O(n log n) time and the single pass simulation is O(n), with O(1) additional space.
Both strategies rely on ordering tasks by how restrictive they are. The greedy version computes the minimum energy directly and is simpler to implement than repeatedly validating candidates with binary search.
Recommended for interviews: The greedy sorting strategy is what most interviewers expect. Recognizing that tasks with the largest minimumRequired - actualCost gap must be handled first demonstrates strong intuition with greedy algorithms and sorting. The binary search method shows an alternative reasoning path but is usually considered less direct. Understanding both strengthens your problem-solving toolkit for array-based scheduling and ordering problems.
| Approach | Time | Space | When to Use |
|---|---|---|---|
| Greedy Sorting by Energy Surplus | O(n log n) | O(1) | Preferred solution for interviews. Directly computes minimum starting energy after sorting tasks by constraint severity. |
| Binary Search for Minimum Energy | O(n log n) | O(1) | Useful when framing the problem as checking feasibility of a starting energy value. |