贪心算法-活动安排问题

贪心算法-活动安排问题
具体求解思路:
首先将活动按照结束时间从小到大排序,
然后将startTime[i]大于finishTime[i-1]的活动安排进去,
由于活动结束时间是事前排好序的(具体排序方法可以看我之前的博客),所以按照此方法,安排的活动相对于来说总是先结束的,这样来说就可以尽量最大化的利用资源。
相关的代码:

public class ActivityPlan {
    public static int greedySelector (int []s,int []f,boolean []a){
        int n=s.length-1;
        a[1]=true;
        int j=1;
        int count=1;
        for(int i=2;i<=n;i++){
            if(s[i]>=f[j])
            {   a[i]=true;
            j=i;
            count++;
        }else a[i]=false;
            }
    return count;
    }
    public static void main(String args[]){
        int s[] = {1,3,0,5,3,5,6,8,8,2,12}; 
        int f[] = {4,5,6,7,8,9,10,11,12,13,14};
        boolean []b=new boolean[s.length+1];
        System.out.print(greedySelector(s,f,b));
    }
}
    原文作者:贪心算法
    原文地址: https://blog.csdn.net/qq_19341327/article/details/51014616
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞