贪心算法--活动选择问题
2019-12-30 本文已影响0人
暮想sun
调度竞争共享资源的多个活动问题,目标是选出一个最大的互相兼容的活动集合。
假定有一个n个活动的集合S{a1,a2....an},这些活动使用同一个资源,而这个资源在某个时刻只能提供一个活动使用。每个活动ai的开始时间为si,结束时间为fi,选出一个兼容最大活动的集合。
public static List<Integer> activityChoice(int[] startTime, int[] endTime) {
//第一个活动默认选中
List<Integer> list = new ArrayList<>();
list.add(0);
//当前开始活动的结束时间
int curTime = endTime[0];
for (int i = 1; i < endTime.length; i++) {
//活动开始时间大于等于上一活动结束时间,活动加入。
if (startTime[i] >= curTime) {
list.add(i);
curTime = endTime[i];
}
}
return list;
}