We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
A hard dynamic programming problem, graded against 5 test cases (2 of them hidden).
Overlapping subproblems solved once and reused - the pattern candidates fear most.
Reach for it when you see: "Number of ways", "minimum/maximum cost", or a recursion that recomputes the same state.
More Dynamic Programmingproblems →Sort jobs by end time. Let `dp[i]` = best profit considering the first `i` sorted jobs.
```
dp[i] = max(dp[i-1], profit[i-1] + dp[p(i)])
```
where `p(i)` is the largest index `j < i` such that `endTime[j-1] <= startTime[i-1]`. Binary search the sorted-end-time array to find `p(i)`.
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
Read off this problem's own test suite, so these are the cases a submission actually has to survive.
These apply to the pattern as a whole, not just this problem.