杭州百度整站优化服务,lovevideo门户视频wordpress主题,济南企业营销型网站建设价格,南通网站定制企业1. 题目
给你一个区间列表#xff0c;请你删除列表中被其他区间所覆盖的区间。
只有当 c a 且 b d 时#xff0c;我们才认为区间 [a,b) 被区间 [c,d) 覆盖。
在完成所有删除操作后#xff0c;请你返回列表中剩余区间的数目。
示例#xff1a;
输入#xff1…1. 题目
给你一个区间列表请你删除列表中被其他区间所覆盖的区间。
只有当 c a 且 b d 时我们才认为区间 [a,b) 被区间 [c,d) 覆盖。
在完成所有删除操作后请你返回列表中剩余区间的数目。
示例
输入intervals [[1,4],[3,6],[2,8]]
输出2
解释区间 [3,6] 被区间 [2,8] 覆盖所以它被删除了。提示
1 intervals.length 1000
0 intervals[i][0] intervals[i][1] 10^5
对于所有的 i ! jintervals[i] ! intervals[j]来源力扣LeetCode 链接https://leetcode-cn.com/problems/remove-covered-intervals 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
先排序再遍历
class Solution {
public:int removeCoveredIntervals(vectorvectorint intervals) {sort(intervals.begin(), intervals.end(),[](const auto a, const auto b) { if(a[0] ! b[0]) return a[0] b[0]; else return a[1] b[1];});//lambda匿名函数int i, l intervals[0][0], r intervals[0][1], n intervals.size();for(i 1; i intervals.size(); i){if(intervals[i][0] l r intervals[i][1]){n--;l intervals[i][0];//选择最大的区间作为覆盖别人r intervals[i][1];}else if(l intervals[i][0] intervals[i][1] r)n--;else //不能覆盖当前把当前作为基准{ l intervals[i][0];r intervals[i][1];}}return n;}
};