安排最多的宣讲场次 --贪心算法

一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目的宣讲。
给你每一个项目开始的时间和结束的时间(给你一个数 组,里面是一个个具体的项目),你来安排宣讲的日程,要求会议室进行的宣讲的场次最多。返回这个最多的宣讲场次。

思想:

每次选一个结束时间最早的项目并淘汰开始时间在该项目奇数时间之前的项目

代码

package com.algorithm.practice;

import java.util.Arrays;
import java.util.Comparator;

public class BestArrange {
    public class Program {
        int start;
        int end;
        public Program(int start, int end) {
            this.start = start;
            this.end = end;
        }
    }
    public static class UpComparator implements Comparator<Program>{
        @Override
        public int compare(Program o1, Program o2) {
            return o1.end-o2.end;
        }
    }
    public static int bestArrange(Program[] programs, int start) {
        int result=0;
        if (programs==null||programs.length==0){
            return 0;
        }
        Arrays.sort(programs,new UpComparator());
        for(int i=0;i<programs.length;i++) {
            if (start <= programs[i].start) {
                result++;
                start = programs[i].end;
            }
        }
        return result;
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 年轻即出发... 简书:https://www.jianshu.com/u/7110a2ba6f9e 知乎:htt...
    囧么肥事阅读 356评论 0 1
  • 贪心的过程要么是最大要么是最小,堆可以很好的满足这个要求。 问题1:一块金条切成两半,是需要花费和长度数值一样的铜...
    放开那个BUG阅读 310评论 0 0
  • 慧远拜在道安门下的时候,佛图澄还活着,但他却一直没有真正听到过师祖的讲经布道,只是师父跟他说过佛会在他们这一代身上...
    蓝浪子阅读 469评论 0 1
  • 初看书名,料想这里的"你"应不是特指,文到最后果不其然,"你"是所有遇见的,发生交集给你思考,力量和感悟的人。杨澜...
    我是Molly木有花阅读 290评论 0 0
  • 发现了一本写作技巧的书,虽然只有一百页,但很实用。写的都是一些实实在在的方法与技巧。 找时间把关键点摘录下来。 记...
    葭溪阅读 82评论 0 2