class Solution {
//首先求解最多有多少个不相交子集
public int intervalSchedule(int[][] intvs){
if(intvs.length==0){
return 0;
}
Arrays.sort(intvs,new Comparator<int[]>(){
public int compare(int[] a,int []b){
return a[1]-b[1];
}
});
//至少有1个区间不相交
int count=1;
//排序后,第一个期间就是x
int x_end=intvs[0][1];
for(int []interval:intvs){
int start=interval[0];
if(start>=x_end){
//如果找到下一个可选择区间
count++;
x_end=interval[1];//更新end
}
}
return count;
}
public int eraseOverlapIntervals(int[][] intervals) {
return intervals.length-intervalSchedule(intervals);
}
}
Leetcode:435. 无重叠区间
最新推荐文章于 2024-07-25 23:19:11 发布
本文深入探讨了区间调度问题,提出了一种高效的算法解决方案。通过排序和遍历,算法能够找出最大数量的不相交子集,有效解决资源分配冲突。同时,介绍了如何计算并消除重叠区间,为任务安排提供优化策略。
617

被折叠的 条评论
为什么被折叠?



