题目

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].

分析

给定几个区间,要求合并重叠区间,返回结果;

AC代码

/**
* Definition for an interval.
* struct Interval {
* int start;
* int end;
* Interval() : start(0), end(0) {}
* Interval(int s, int e) : start(s), end(e) {}
* };
*/ //自定义Interval类型元素的升序比较函数
bool cmp(Interval a, Interval b)
{
return a.start < b.start;
} class Solution {
public: vector<Interval> merge(vector<Interval>& intervals) { //如果输入参数为空,则返回空vector
if (intervals.empty())
return vector<Interval>(); int len = intervals.size();
//首先,按照每个Integerval的区间首值进行排序,自定义比较
sort(intervals.begin(), intervals.end() , cmp); //声明结果
vector<Interval> ret;
vector<Interval>::iterator iter = intervals.begin(); //定义临时变量
Interval temp = intervals[0]; for (int i = 0; i < len; i++)
{
//换一种判断方法
if (intervals[i].start > temp.end)
{
ret.push_back(temp);
temp = intervals[i];
}
else{
temp.end = temp.end > intervals[i].end ? temp.end : intervals[i].end;
}//else }//for
ret.push_back(temp);
return ret;
}
};

GitHub测试程序源码

最新文章

  1. js生成和下载二维码
  2. win10删除导航栏文档等图标,去除快捷方式
  3. 部署keepalive+lvs
  4. 提高FOR插入数据库动作的优化代码
  5. fork和exec函数
  6. HTML基础总结&lt;标题&gt;
  7. Javascript基础Function
  8. C#VS面向对象基础(二)
  9. [Usaco2007 Dec]穿越泥地[bfs][水]
  10. 视频剪辑软件原型-videocut
  11. python_异常处理_断言
  12. 移动Web UI库(H5框架)
  13. Python-Selenium中chromeDriver限制图片和Javascript加载
  14. Leetcode题库——38.报数
  15. Python3基础 if嵌套示例
  16. url传递数据
  17. tomcat启动项目的时候不报错而且启动的很快
  18. vue组件之间传值方式解析
  19. 20145327 《Java程序设计》第二周学习总结
  20. 关于 double sort 这道题的思考

热门文章

  1. golang——关于for循环的学习
  2. setsockopt()函数功能介绍
  3. CAD中的相对坐标和绝对坐标
  4. 题解报告:hdu 5750 Dertouzos(最大真约数、最小素因子)
  5. DotNteBar 控件操作
  6. 435 Non-overlapping Intervals 无重叠区间
  7. android开发学习 ------- 【转】Gradle相关
  8. 搞定redis面试--Redis的过期策略?手写一个LRU?
  9. EL表达式、JSTL
  10. 微信轻松接入QQ客服