主持人调度(一)_牛客题霸_牛客网
【描述】
【分析】
解法:排序
按照左端点将区间排序
排序后可以判断不同区间的左端点和右端点,如果区间重叠了(当前区间的左端点小于上一个区间的右端点),返回false,反之返回true
【代码】
import java.util.*;
public class Solution
{
public boolean hostschedule(ArrayList<ArrayList<Integer>> sc)
{
int m = sc.size(), n = sc.get(0).size();
int[][] schedule = new int[m][n];
for(int i = 0;i < m;i++)
{
for(int j = 0;j < n;j++)
{
schedule[i][j] = sc.get(i).get(j);
}
}
//以上为牛客bug下的处理,无视即可
Arrays.sort(schedule, (v1, v2) ->
{
return v1[0] - v2[0]; //vi[0] - v2[0]意味着升序排列
});
for(int i = 1;i < schedule.length;i++)
{
if(schedule[i][0] < schedule[i - 1][1])
{
return false;
}
}
return true;
}
}