leetcode-Merge Intervals
2014-06-14 15:24
176 查看
Given a collection of intervals, merge all overlapping intervals.
For example,
Given
return
思路:先按照start进行排序,再合并。
代码:
bool TIsShort(const Interval &s1,const Interval &s2)
{
return s1.start<s2.start;
}
class Solution {
public:
vector<Interval> merge(vector<Interval> &intervals) {
if(intervals.empty())
{
return intervals;
}
sort(intervals.begin(),intervals.end(),TIsShort);
vector<Interval> ::iterator it=intervals.begin();
while((it+1) != intervals.end())
{
vector<Interval> ::iterator temp=it+1;
if((*it).end>=(*temp).start)
{
if((*it).end < (*temp).end)
{
(*it).end=(*temp).end;
}
intervals.erase(temp);
}
else
{
++it;
}
}
return intervals;
}
};
For example,
Given
[1,3],[2,6],[8,10],[15,18],
return
[1,6],[8,10],[15,18].
思路:先按照start进行排序,再合并。
代码:
bool TIsShort(const Interval &s1,const Interval &s2)
{
return s1.start<s2.start;
}
class Solution {
public:
vector<Interval> merge(vector<Interval> &intervals) {
if(intervals.empty())
{
return intervals;
}
sort(intervals.begin(),intervals.end(),TIsShort);
vector<Interval> ::iterator it=intervals.begin();
while((it+1) != intervals.end())
{
vector<Interval> ::iterator temp=it+1;
if((*it).end>=(*temp).start)
{
if((*it).end < (*temp).end)
{
(*it).end=(*temp).end;
}
intervals.erase(temp);
}
else
{
++it;
}
}
return intervals;
}
};
相关文章推荐
- 【Leetcode】【Hard】Merge Intervals
- LeetCode056 Merge Intervals
- LeetCode – Refresh – Merge Intervals
- [leetcode] Merge Intervals
- leetcode 56: Merge Intervals
- [LeetCode]题解(python):056-Merge Intervals
- [leetcode] Merge Intervals
- 【LeetCode】Merge Intervals 解题报告
- leetcode-Merge Intervals
- [Leetcode][python]Merge Intervals
- LeetCode 056 Merge Intervals
- [leetcode刷题系列]Merge Intervals
- [LeetCode]Merge Intervals
- LeetCode() Merge Intervals 还是有问题,留待,脑袋疼。
- leetcode -- Merge Intervals
- LeetCode刷题【Array】 Merge Intervals
- 【LeetCode】Merge Intervals 解题报告
- LeetCode: Merge Intervals 解题报告
- LeetCode Online Judge 题目C# 练习 - Merge Intervals
- LeetCode Merge Intervals