LeetCode 56:Merge Intervals
2015-06-02 21:17
375 查看
Given a collection of intervals, merge all overlapping intervals.
For example,
Given
return
分析:
题目要求对区间进行合并,首先必须对区间按照左边元素的大小进行排序,然后对排序后的数组进行遍历,合并。
能够合并的区间必须符合 a.begin <=b.begin <= a.end.
代码如下:
For example,
Given
[1,3],[2,6],[8,10],[15,18],
return
[1,6],[8,10],[15,18].
分析:
题目要求对区间进行合并,首先必须对区间按照左边元素的大小进行排序,然后对排序后的数组进行遍历,合并。
能够合并的区间必须符合 a.begin <=b.begin <= a.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: static int compare_Interval(Interval val1, Interval val2){ return val1.start < val2.start; } vector<Interval> merge(vector<Interval>& intervals) { vector<Interval> result; if (intervals.size()<=1) { return intervals; } sort(intervals.begin(),intervals.end(), compare_Interval); Interval node = intervals[0] ; for (int index=1; index<intervals.size(); index++) { Interval tmp = intervals[index] ; if (tmp.start > node.end) { result.push_back(node); node = tmp; continue; }else{ node.end = max(tmp.end, node.end); } } result.push_back(node); return result; } };
相关文章推荐
- 开源收藏
- JAVA bootstrap ClassLoader和JAVA核心API替换
- 2015年第十三周oj:小球自由下落
- DTD基本语法
- nginx常见内部参数,错误总结
- 策略模式
- 1163
- Creating a Qt Quick Application(译)
- Django学习之用户登录
- [leetcode] Contains Duplicate III
- 大数据引发的联想--人工智能
- IOS判断当前日期在两个日期之间。
- jquery对标签属性操作
- python基础教程学习笔记---(7)python操作mysql
- java.io.Serializable浅析
- 使用erwin
- leetcode刷题 ,总结,记录,备忘。144
- 给textarea添加背景图
- Android+Sqlite 实现古诗阅读应用(三)
- 201506022038_《JavaScript权威指南-判断两个数组相等》(p38-48)