解题思路:
贪心策略:优先保留结尾小且不相交的区间,即局部最优连续区间
1,按照小区间的结尾大小,进行增序排序,利用std::sort()函数结合lambda表达式进行自定义排序来实现。
2,初始化连续不相交区间的末尾区间的结尾
3,判断,当前区间的结尾小于等于后一个区间的起点,证明不重叠,更新连续不相交区间的末尾区间的结尾;否则重叠,++count。
4,继续循环判断,直到末尾
使用++和- -的小技巧:++n和n++都是将n加1,只是n++的返回值为n,而++n的返回值为n+1。所以如果只是希望增加n的值,而不需要返回值,则推荐使用++n,其运行速度会稍微快一些
代码:
class Solution {
public:
int eraseOverlapIntervals(vector<vect