Leetcode-56. Merge Intervals
来源:互联网 发布:借助知乎对信仰的回答 编辑:程序博客网 时间:2024/05/18 12:29
题目
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].
合并给定的数组中重叠的部分
思路
先排序,按Interval.start的升序排序,然后遍历数组,如果当前元素的start大于之前合并的元素的end,则把当前元素添加到返回结果数组中,否则合并返回结果数组的最后一个元素和当前元素并替换返回结果数组中的最后一个元素。
代码
struct Interval { int start; int end; Interval() : start(0), end(0) {} Interval(int s, int e) : start(s), end(e) {}};bool cmp(Interval i1, Interval i2) { if(i1.start < i2.start) return true; else if(i1.start > i2.start) return false; else return i1.end < i2.end;}class Solution {public: vector<Interval> merge(vector<Interval>& intervals) { vector<Interval> res; if(0 == intervals.size()) return res; sort(intervals.begin(), intervals.end(), cmp); res.push_back(intervals[0]); for(int i=1; i<intervals.size(); i++) { if(intervals[i].start > res[res.size()-1].end) { res.push_back(intervals[i]); } else { res[res.size()-1] = Interval(res[res.size()-1].start, max(intervals[i].end, res[res.size()-1].end)); } } return res; }};
0 0
- [LeetCode]56.Merge Intervals
- 56. Merge Intervals Leetcode
- LeetCode --- 56. Merge Intervals
- LeetCode 56.Merge Intervals
- [Leetcode] 56. Merge Intervals
- [leetcode] 56.Merge Intervals
- 【leetcode】56. Merge Intervals
- [leetcode] 56.Merge Intervals
- **LeetCode 56. Merge Intervals
- LeetCode 56. Merge Intervals
- leetcode 56. Merge Intervals
- 【LeetCode】56. Merge Intervals
- LeetCode 56. Merge Intervals
- 【leetcode】56. Merge Intervals
- leetcode 56. Merge Intervals
- leetcode.56. Merge Intervals
- [LeetCode] 56. Merge Intervals
- leetcode 56. Merge Intervals
- 17. Letter Combinations of a Phone Number
- Linux find指令
- A*算法--C#版
- 新手如何创建csdn博客
- 1007. 素数对猜想 (20)-PAT乙级
- Leetcode-56. Merge Intervals
- javascript函数内的this关键字
- dubbo在eclipse中无法读取到dubbo.xsd
- 输出一个整数的每一位
- 第1章-安装Node.js及相关要点-1.5.Node.js读写文件
- 网易实习生笔试编程题1:对序列去重,只保存最后出现的元素
- 【笔试】Java判断一个正整数是否为质数(素数)。
- 概率统计回顾
- maven 处理冲突