template<typename T>
int eraseOverlapIntervals(std::vector<std::vector<T> > &intervals)
{
int total;
//按数组末尾大小增序排序
std::sort(intervals.begin(), intervals.end(), [](const std::vector<T> &a, const std::vector<T> &b)
{
return a[1] < b[1];
}
);
T pre = intervals[0][1];
for(int i = 1; i < intervals.size();++i)
{
if ( intervals[i][0] < pre )
{
++total;
}
else
{
pre = intervals[i][1];
}
}
return total;
}
贪心策略之区间问题
最新推荐文章于 2024-05-24 21:55:03 发布
该博客介绍了一个C++实现的模板函数,用于计算给定区间集合中不重叠区间的数量。首先,它通过排序区间数组,根据区间的结束点升序排列。然后,遍历排序后的区间,更新不重叠计数。这个算法在处理大量区间数据时,能有效地找出无交集的区间数量。
摘要由CSDN通过智能技术生成