Minimum Difficulty of a Job Schedule - Problem
You want to schedule a list of jobs in d days. Jobs are dependent (i.e., 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 difficulties of each day of the d days. The difficulty of a day is the maximum difficulty of a job done on that day.
Given an integer array jobDifficulty and an integer d, return the minimum difficulty of a job schedule. If you cannot find a schedule for the jobs, return -1.
Input & Output
Example 1 — Basic Case
$
Input:
jobDifficulty = [6,5,4,3,2,1], d = 2
›
Output:
7
💡 Note:
Optimal schedule: Day 1 = [6,5,4,3,2] (max=6), Day 2 = [1] (max=1). Total difficulty = 6 + 1 = 7.
Example 2 — Single Day
$
Input:
jobDifficulty = [9,9,9], d = 1
›
Output:
9
💡 Note:
All jobs must be done in 1 day. The difficulty is the maximum job difficulty = 9.
Example 3 — Impossible Case
$
Input:
jobDifficulty = [1,1,1], d = 4
›
Output:
-1
💡 Note:
Cannot schedule 3 jobs across 4 days since each day needs at least one job.
Constraints
- 1 ≤ jobDifficulty.length ≤ 300
- 0 ≤ jobDifficulty[i] ≤ 1000
- 1 ≤ d ≤ 10
Visualization
Tap to expand
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code