【C++】【LeetCode】56. Merge Intervals
来源:互联网 发布:python安装requests库 编辑:程序博客网 时间:2024/06/17 01:54
题目
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].
思路
先给数组排序,这样保证了每个interval的start都是依次递增的,这样只要考虑end的问题。只存在三种情况,后一个interval的start比前一个interval的end大,说明不需要合并;后一个interval的start比前一个的end小,说明两者有交集,取end大的为新end。
代码
/** * 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) { if (intervals.empty()) { return intervals; } sort(intervals.begin(), intervals.end(),[](Interval a, Interval b){return a.start < b.start;}); vector<Interval> result; 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(result.back().end, intervals[i].end); } } return result; }};
阅读全文
0 0
- 【C++】【LeetCode】56. Merge Intervals
- [LeetCode]56.Merge Intervals
- 56. Merge Intervals Leetcode
- LeetCode --- 56. Merge Intervals
- LeetCode 56.Merge Intervals
- [Leetcode] 56. Merge Intervals
- [leetcode] 56.Merge Intervals
- 【leetcode】56. Merge Intervals
- [leetcode] 56.Merge Intervals
- **LeetCode 56. Merge Intervals
- LeetCode 56. Merge Intervals
- leetcode 56. Merge Intervals
- 【LeetCode】56. Merge Intervals
- LeetCode 56. Merge Intervals
- 【leetcode】56. Merge Intervals
- leetcode 56. Merge Intervals
- leetcode.56. Merge Intervals
- [LeetCode] 56. Merge Intervals
- [Letecode 84] Largest Rectangle in Histogram
- 分布式架构的演进
- Linux的bg和fg命令简单介绍
- 无序数组找第k小的数
- Linux下开发JAVA程序
- 【C++】【LeetCode】56. Merge Intervals
- 快速排序
- swift3.0 元组简单学习
- 系统调用的详细过程
- Ubuntu 16.04 LTS安装sogou输入法详解
- jzoj 1301_treecut_dfs
- Java中常见数据结构:Java容器 Collection与map -底层如何实现
- Android中shape属性详解
- shell script : install pf_ring driver