解题思路:该题目类似于活动安排问题,先按照结束时间的长短进行排序,结束时间短的排在前面,在根据后一个
活动的开始时间要比前一个活动的结束时间要晚的原则,从前向后筛选即可。
public int eraseOverlapIntervals(Interval[] intervals)
{
int n = intervals.length;
int ncount = 0;
// 排序
for(int i=0; i<n; i++)
{
for (int j=i+1; j<n; j++)
{
// 结束时间早的排在前面
if (intervals[j].end < intervals[i].end)
{
swap(intervals[i], intervals[j]);
}
}
}
int k = 0;
for (int i=1; i<n; i++)
{
if(intervals[i].start >= intervals[k].end)
{
k = i;
}
else
{
// 有重叠部分
ncount++;
}
}
return ncount;
}