贪心算法-活动安排问题

来源:互联网 发布:8.27儿童网络暴力事件 编辑:程序博客网 时间:2024/04/30 05:20

贪心算法-活动安排问题
具体求解思路:
首先将活动按照结束时间从小到大排序,
然后将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));    }}
1 0