1.題目
一些項目要佔用一個會議室宣講,會議室不能同時容納兩個項目
的宣講。 給你每一個項目開始的時間和結束的時間(給你一個數
組,裏面 是一個個具體的項目),你來安排宣講的日程,要求會
議室進行 的宣講的場次最多。返回這個最多的宣講場次。
2.code
2.1 思路
思路:主要在於貪心的策略上,是會議開始時間早的先開始,還是會議時間短的先開始,或者會議先結束的先開始。
- 我們採用會議結束時間短的作爲貪心策略。
2.2 code
public static class Program {
public int start;
public int end;
public Program(int start, int end) {
this.start = start;
this.end = end;
}
}
public static class ProgramComparator implements Comparator<Program> {
@Override
public int compare(Program o1, Program o2) {
return o1.end - o2.end;
}
}
public static int bestArrange(Program [] programs,int start){
Arrays.sort(programs);
int count = 0;
for (int i = 0; i < programs.length; i++) {
if (start<=programs[i].start){
count++;
start = programs[i].end;
}
}
return count;
}