56. Merge Intervals (Array; Project)
2015-12-05 10:35
218 查看
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].
class Solution { public: vector<Interval> merge(vector<Interval> &intervals) { if(intervals.empty() || intervals.size() == 1) return intervals; for(vector<Interval>::iterator it = intervals.begin()+1; it < intervals.end();it++) { for(vector<Interval>::iterator innerIt = intervals.begin(); innerIt < it;innerIt++) { int left = min(it->start, innerIt->start); int right = max(it->end, innerIt->end); int size1 = (it->end) - (it->start); int size2 = (innerIt->end) - (innerIt->start); if(right - left > size1 + size2) //求线段是否重叠:比较投影的左右端点间长度与线段长度和 continue; else { innerIt->start = left; innerIt->end = right; intervals.erase(it); it = innerIt; break; } } } return intervals; } };
相关文章推荐
- hdoj--5053--the Sum of Cube(水)
- 如何防止使用singleInstance的activity返回时拉起其他应用的问题
- 最小生成树Prim算法
- sizeof与strlen的区别
- 安装Hadoop系列 — 新建MapReduce项目
- hdoj--5053--the Sum of Cube(水)
- Failed to open/create the internal network Vagrant on Windows10
- jQuery的学习过程
- 启动SSH框架项目 Tomcat报错
- 如何诊断 Java 中的内存泄露
- Unix Network Programming(10)---connect 函数
- OpenJudge_P8786 方格取数(DP)
- 已经不是第一次来到51cto了
- float类型的精度问题与计算机中的存储
- ID3算法
- 重载PostNcDestroy()函数做一些清理工作
- iOS设计模式——Category
- caused by android.system.errnoexception open failed eacces (permission denied)解决方案,安卓6.0(API23)权限问题
- Linux简单的shell脚本
- TCP建立连接和拆除连接的过程