主页 > 创业  > 

leetcode56.合并区间

leetcode56.合并区间

题目如下

数据范围

对区间排序从左到右遍历,维持l作为当前区间的最左边边界就行,维持r作为右端点随后判断区间是否重叠。

通过代码

class Solution { public: static bool cmp(const vector<int> &a,const vector<int> &b){ if(a[0] != b[0])return a[0] < b[0]; return a[1] < b[1]; } vector<vector<int>> merge(vector<vector<int>>& intervals) { sort(intervals.begin(),intervals.end(),cmp); vector<vector<int>> ans; int n = intervals.size(); int l = intervals[0][0]; int r = intervals[0][1]; for(int i = 1;i < n;i++){ // cout << intervals[i][0] << " " << intervals[i][1] << endl; if(intervals[i][0] > r){ ans.push_back({l,r}); l = intervals[i][0]; r = intervals[i][1]; }else{ r = max(r,intervals[i][1]); } } ans.emplace_back(vector<int>{l,r}); return ans; } };

标签:

leetcode56.合并区间由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“leetcode56.合并区间