数据结构与算法

贪心算法--活动选择问题

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;
    }
上一篇 下一篇

猜你喜欢

热点阅读