Leetcode题解 - 56. Merge Intervals
2017-03-24 13:48
381 查看
Given a collection of intervals, merge all overlapping intervals.
For example,
Given [1,3],[2,6],[8,10],[15,18],
return [1,6],[8,10],[15,18].
链接
把交叉的区间进行合并,比较简单的方法就是先把给定的区间按照左边元素的大小进行排序,然后两两相邻进行比较,存在交叉就比较剩下几个元素的大小,合并区间,直到进行到最后一个元素为止。
For example,
Given [1,3],[2,6],[8,10],[15,18],
return [1,6],[8,10],[15,18].
链接
把交叉的区间进行合并,比较简单的方法就是先把给定的区间按照左边元素的大小进行排序,然后两两相邻进行比较,存在交叉就比较剩下几个元素的大小,合并区间,直到进行到最后一个元素为止。
/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end(e) {} * }; */ class Solution { public: vector<Interval> merge(vector<Interval>& intervals) { vector<Interval> result; if(intervals.empty()){return vector<Interval>{}; } sort(intervals.begin(),intervals.end(),[](Interval a,Interval b){return a.start<b.start;}); result.push_back(intervals[0]); for(int i=1;i<intervals.size();i++){ if(result.back().end<intervals[i].start){ result.push_back(intervals[i]); } else{ result.back().end=max(intervals[i].end,result.back().end); } } return result; } };
相关文章推荐
- Leetcode 56 Merge Intervals
- [Java]leetcode56 Merge Intervals
- Leetcode 56 Merge Intervals
- [Leetcode] #56 Merge Intervals
- [LeetCode]56 Merge Intervals
- LeetCode-56-Merge Intervals(C语言实现)
- LeetCode 56 Merge Intervals(Python实现及详解)
- LeetCode 56, Merge Intervals 从 TLE 到 AC
- [LeetCode 56] Merge Intervals
- 【LeetCode】C# 56、Merge Intervals
- LeetCode - 56 - Merge Intervals
- LeetCode_OJ【56】Merge Intervals
- LeetCode56 Merge Intervals
- LeetCode 56 Merge Intervals
- LeetCode-56-Merge Intervals Python自定义sort,贪心
- LeetCode(56)Merge Intervals
- leetCode 56, Merge Intervals
- [Leetcode 84] 56 Merge Intervals
- leetcode || 56、 Merge Intervals
- LeetCode(56)Merge Intervals