【一天一道LeetCode】#56. Merge Intervals
2016-05-22 19:47
441 查看
一天一道LeetCode系列
(一)题目
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].
(二)解题
/* 本题的解题步骤: 1、对vector里面的每个Interval结构体按照start的值升序排列 2、遍历整个intervals,如果有重复区域就合并,如果没有就存到ret里面 */ /** * 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> ret; if(intervals.empty()) return ret; sort(intervals.begin(),intervals.end(),comparein);///按照start的值升序排列 Interval tmp = intervals[0];//初始化 for(int i = 1 ; i < intervals.size() ; i++) { if(intervals[i].start<=tmp.end) tmp.end = max(tmp.end,intervals[i].end);//更新end else{ ret.push_back(tmp);//没有重复区域就压入ret tmp = intervals[i];//更新tmp的值,继续遍历 } } ret.push_back(tmp); return ret; } static bool comparein(const Interval& i1 , const Interval& i2)//比较函数 { return i1.start<i2.start; } };
相关文章推荐
- [leetcode] 【数组】 60. Permutation Sequence
- 【一天一道LeetCode】#56. Merge Intervals
- EventBus3.0 使用个人总结
- C++实验6——矩阵求和
- 小棒组合第十二周项目总结
- stl中的push_back
- boa配置文件详解
- Java实现HTTP多线程下载功能app
- 安装MYSQL出现的问题
- Git常用命令,很全很详细讲解的也不错
- HDFS中心缓存管理
- Weblogic反序列化漏洞简单补救
- hdu 5410 01+完全背包
- windows下使用eclipse新建第一个django项目过程
- 解决IE访问Oracel OEM证书错误
- lucas定理 FOJ 2020 组合
- POJ 1787 Charlie's Change (多重背包 带结果组成)
- 2016-5-22 百度之星第三题--瞬间移动
- gulp-express实现node-express项目实时刷新
- 龙芯3B处理器—地址映射以及路由地址分布与配置