一位活动主持人在同一时间只能参与一个活动。并且活动主持人需要全程参与活动,换句话说,一个主持人参与了第 i 个活动,那么该主持人在 (starti,endi) 这个时间段不能参与其他任何活动。请问一个只有一个主持人能否举办全部活动。
数据范围:
[[0,10],[10,20],[20,30]]
true
[[0,10],[10,20],[15,30]]
false
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param schedule int整型ArrayList<ArrayList<>>
* @return bool布尔型
*/
class InnerModel {
private int left;
private int right;
public InnerModel(int left, int right) {
this.left = left;
this.right = right;
}
public int getLeft() {
return left;
}
public int getRight() {
return right;
}
@Override
public String toString() {
return "[" + left + "," + right + "]";
}
}
public boolean hostschedule(ArrayList<ArrayList<Integer>> schedule) {
// write code here
List<InnerModel> total = new ArrayList<>();
Iterator<ArrayList<Integer>> iterator = schedule.iterator();
while (iterator.hasNext()) {
ArrayList<Integer> cur = iterator.next();
total.add(new InnerModel(cur.get(0), cur.get(1)));
}
total.sort(Comparator.comparingInt(InnerModel::getLeft));
for (int i = 0; i < total.size() - 1; i++) {
if (total.get(i).getRight() > total.get(i + 1).getLeft()) {
return false;
}
}
return true;
}
}