每个任务需要一个工程师,给出任务的开始时间和耗时,为了任务按时完成,输出工程师个数,结果哪里错了?

public class Test {
public static void main(String[] args) {
int[][] sample = {
{1689815220, 180},
{1689814920, 120}
};
int engineers = needEngineers(sample);
System.out.println("需要工程师个数为: " + engineers);
}
public static int needEngineers(int[][] jobs) {
Arrays.sort(jobs, Comparator.comparingInt(a -> a[0]));
List<Engineers> engineersList = new ArrayList<>();
for (int[] job : jobs) {
int startTime = job[0];
int duration = job[1];
if (engineersList.isEmpty()) {
Engineers first = new Engineers();
first.lastTime = startTime + duration;
engineersList.add(first);
} else {
//需要新的工程师
boolean flag = true;
for (Engineers engineers : engineersList) {
//如果任务开始时间大于上个任务结束时间,那么工程师可以处理这个任务
if (startTime > engineers.lastTime) {
engineers.lastTime = startTime + duration;
flag = false;
}
}
if (flag) {
Engineers engineers = new Engineers();
engineers.lastTime = startTime + duration;
engineersList.add(engineers);
}
}
}
return engineersList.size();
}
static class Engineers {
int lastTime;
}
}

相似回答