【数据结构与算法】例题八
选择的依据:哪个结束的早就先安排哪个。
定义一个Program类,里面包含两个成员,分别是start和end,即开始的时间和结束的时间。
当当前的时间小于项目开始的时间时,执行该项目,项目数加1,并且让当前时间推进到项目结束的时间。
package bublleSort;
import java.util.Arrays;
import java.util.Comparator;
public class bestArrange {
public static class Program{
int end;
int start;
public Program(int end, int start){
this.end = end;
this.start = start;
}
}
public static class ProramComparator implements Comparator<Program>{
@Override
public int compare(Program o1, Program o2) {
return o1.end - o2.end;
}
}
public static int bestArrange(Program[] programs, int cur) {
Arrays.sort(programs, new ProramComparator());
int result = 0;
for(int i = 0; i < programs.length; i++) {
if(cur <= programs[i].start) {
result++;
cur = programs[i].end;
}
}
return result;
}
public static void main(String[] args) {
Program program1 = new Program(2, 15);
Program program2 = new Program(1,3);
Program program3 = new Program(5,6);
Program[] programs = {program1, program2, program3};
System.out.println(bestArrange(programs, 5));
}
}