java.lang.Object
g1601_1700.s1665_minimum_initial_energy_to_finish_tasks.Solution

public class Solution extends java.lang.Object
1665 - Minimum Initial Energy to Finish Tasks.

Hard

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 <= 105
  • 1 <= actuali <= minimumi <= 104
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    minimumEffort(int[][] tasks)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • minimumEffort

      public int minimumEffort(int[][] tasks)