题目:

给出一个区间的集合,请合并所有重叠的区间。

示例 1:

输入: [[1,3],[2,6],[8,10],[15,18]]
输出: [[1,6],[8,10],[15,18]]
解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例 2:

输入: [[1,4],[4,5]]
输出: [[1,5]]
解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

解题思路:

按照给出的示例,我们可以发现只要循环一遍,把前后两个区间并列,不可并列就可压到answer中。但实际上题目没有说明给出的集合都是递增的,这样便不可直接循环来做。由此,应该先对这个集合进行排序,使之按照start递增,这样便可按照上述方法解题了。

代码:

 /**
* 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> ans;
if(intervals.empty())
return ans;
int len = intervals.size();
sort(intervals.begin(), intervals.end(), [](Interval &a, Interval &b)
{
return a.start < b.start;
});
Interval temp = intervals[];
for(int i = ; i < len; ++i) {
if(intervals[i].start <= temp.end) { temp.end = max(intervals[i].end, temp.end);
}
else {
ans.push_back(temp);
temp = intervals[i];
}
}
ans.push_back(temp);
return ans;
}
};

最新文章

  1. TCP协议
  2. 51. N-Queens
  3. git 远程版本库,github提供服务原理,git自动更新发送邮件
  4. 免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动。
  5. MyBatis入门(二)---一对一,一对多
  6. Visual Studio Online Integrations
  7. 01-实现图片按钮的缩放、动画效果(block的初步应用)
  8. RosettaNet
  9. 从后端到页面:如何全方位监控 Ruby 应用?
  10. android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
  11. Ionic如何实现单选二级菜单切换
  12. jquery通过数值改变球大小
  13. Java堆和优先队列
  14. Linux虚拟机配置(新猿旺学习总结)
  15. 2018上IEC计算机高级语言(C)作业 第3次作业
  16. &lt;Listener&gt;HttpSessionListener和HttpSessionAttributeListener区别
  17. 设计模式--Proxy
  18. Linux中 /boot 目录介绍 【转载】
  19. BZOJ4636: 蒟蒻的数列(动态开节点线段树)
  20. 2017中国大学生程序设计竞赛 - 网络选拔赛 1004 HDU 6153 A Secret (字符串处理 KMP)

热门文章

  1. JVM即时编译器
  2. 在Heroku上免费部署ASP.NET Core(使用Docker和CircleCI)
  3. Unity3d外包公司|UE4外包公司:谷歌首款Daydream VR设备上手
  4. React-native完整配置流程
  5. S3T mongodb GUI
  6. ZooKeeper如何完成分布式锁?
  7. LeetCode--030--串联所有单词的字串(java)
  8. &#39;JetEntityFrameworkProvider&#39; could not be loaded 解决办法
  9. D3DX 9.9 LEARNERNOTO
  10. QT:图形的描画(折线,柱状图,多边形)