Minimum Difficulty of a Job Schedule

You want to schedule a list of jobs in d days. Jobs are dependent: to work on the i^th job, you have to finish all jobs j where 0 <= j < i.

You have to finish at least one task every day. The difficulty of a job schedule is the sum of the difficulties of each day of the d days. The difficulty of a day is the maximum difficulty of a job done on that day.

You are given an integer array jobDifficulty and an integer d. The difficulty of the i^th job is jobDifficulty[i].

Return the minimum difficulty of a job schedule. If you cannot find a schedule for the jobs, return -1.

Example 1
InputjobDifficulty = [6,5,4,3,2,1], d = 2
Output7
First day you can finish the first 5 jobs with difficulty 6, and the second day you can finish the last job with difficulty 1, so the total difficulty is 7.
Example 2
InputjobDifficulty = [9,9,9], d = 4
Output-1
Even if you finish one job per day, there will still be a free day, so no valid schedule exists.

Constraints

  • 1 <= jobDifficulty.length <= 300
  • 0 <= jobDifficulty[i] <= 1000
  • 1 <= d <= 10

Asked at 7 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate