leetcode 刷题之路 32 Merge Intervals
来源:互联网 发布:mac有必要安装office 编辑:程序博客网 时间:2024/05/16 01:31
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]
.
给定一组整数对代表的区间,合并重合的区间。
我的做法是首先以区间的起始位置为基准进行排序,遍历排序后的区间数组,对于相邻的位置i和i+1,当区间i的右边界小于区间i+1的左边界时,两个区间不重叠,把区间i保存到结果数组中,当区间i的左边界大于区间i+1的右边界时,把两个区间合并,合并后的区间覆盖到区间i+1上,然后以区间i+1为当前区间进行处理,重复以上步骤直到数组结尾,数组的最后一个区间要么是和其前面的区间和并的结果,要么不和前面的区间重叠,两种情况都是要保存到结果数组中,最后返回结果数组。
代码:
/** * 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> vi;if (intervals.empty())return vi;sort(intervals.begin(), intervals.end(), cmp);for (int i = 0; i < intervals.size()-1; i++){if (intervals[i].end < intervals[i + 1].start)vi.push_back(intervals[i]);else{if (intervals[i].end>intervals[i + 1].end)intervals[i + 1].end = intervals[i].end;intervals[i + 1].start = intervals[i].start;}}vi.push_back(intervals[intervals.size()-1]);}bool static cmp(const Interval& i1, const Interval& i2){return i1.start < i2.start;}};
0 0
- leetcode 刷题之路 32 Merge Intervals
- leetcode之Merge Intervals
- LeetCode进阶之路(Merge Intervals)
- LeetCode第56题之Merge Intervals
- Leetcode之Merge Intervals 问题
- [leetcode刷题系列]Merge Intervals
- LeetCode 之 Merge Intervals — C++ 实现
- LeetCode: Merge Intervals
- LeetCode Merge Intervals
- LeetCode: Merge Intervals
- [Leetcode] Merge Intervals
- leetcode 28: Merge Intervals
- Leetcode: Merge Intervals
- [LeetCode] Merge Intervals
- [LeetCode]Merge Intervals
- leetcode merge intervals
- [leetcode]Merge Intervals
- LeetCode-Merge Intervals
- 单链表相关操作
- POJ 1984 Navigation Nightmare (数据结构-并查集)
- UVA - 705 Slash Maze(dfs+floodfiil)
- ssh中“Host key verification failed.“的解决方案
- 如何在NCBI实现大批量数据的一一对应
- leetcode 刷题之路 32 Merge Intervals
- 百度轻应用开放平台
- x210v3 u-boot2014.01 成功添加单板
- Socket客户端上传文件
- Linux下的输入/输出重定向
- 用工厂方法(Factory Method)和 单例模式(Singleton)实现抽象工厂(Abstract Factory)
- UVa 164 - String Computer
- 百度员工离职总结:如何做个好员工
- Android网络连接判断与处理