Find Minimum Time to Finish All Jobs LeetCode solution in Java

1
class Solution {
2
int result = Integer.MAX_VALUE;
3

4
public int minimumTimeRequired(int[] jobs, int k) {
5
int length = jobs.length;
6
Arrays.sort(jobs);
7
backtrack(jobs, length - 1, new int[k]);
8
return result;
9
}
10

11
public void backtrack(int[] jobs, int current, int[] workers) {
12
if (current < 0) {
13
result = Math.min(result, Arrays.stream(workers).max().getAsInt());
14
return;
15
}
16

17
if (Arrays.stream(workers).max().getAsInt() >= result) return;
18
for (int i = 0; i < workers.length; i++) {
19
if (i > 0 && workers[i] == workers[i - 1]) continue;
20
// make choice
21
workers[i] += jobs[current];
22
// backtrack
23
backtrack(jobs, current - 1, workers);
24
// undo the choice
25
workers[i] -= jobs[current];
26
}
27
}
28
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0