问题:给定一系列包含活动名称,开始时间和结束时间的活动对象,请使用递归方法查找不重叠的活动,并占用会议室分配的时间最多的时间。回报必须是一系列最佳活动。
经过大量研究,我完全陷入困境,并且正在寻找任何帮助指导我找到正确解决方案的方法。以下是我到目前为止所写的内容。我已经覆盖了compareTo方法,以按结束时间对活动进行排序。我知道将需要两种情况。一个是数组中的第一个活动包含在最佳计划中,第二个活动则没有。
import java.util.Arrays;
public class Scheduling {
public static Activity[] optimalSchedule(int roomStartTime, int roomEndTime, Activity[] activities) {
Arrays.sort(activities);
return recursiveSchedule(roomStartTime, roomEndTime, activities, 0);
}
/* recursive helper method */
private static Activity[] recursiveSchedule(int roomStartTime, int
roomEndTime, Activity[] activities, int index) {
}