Leetcode57. Insert Interval
2017-08-25 20:51
225 查看
57. Insert Interval(插入区间)
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
You may assume that the intervals were initially sorted according to their start times.
Example 1:
Given intervals
as
Example 2:
Given
as
This is because the new interval
AC代码:
vector<Interval> insert(vector<Interval>&
intervals, Interval newInterval) {
vector<Interval> ret;
if(intervals.empty())
{
ret.push_back(newInterval);
return ret;
}
int i = 0;
while(i < intervals.size())
{
//添加的区间与已知区间没有重叠区间
if(newInterval.end < intervals[i].start)
{
ret.push_back(newInterval);
while(i < intervals.size())
{
ret.push_back(intervals[i]);
i ++;
}
return ret;
}
else if(newInterval.start > intervals[i].end)
ret.push_back(intervals[i]);
//有重叠区间
else
{
newInterval.start = min(newInterval.start, intervals[i].start);
newInterval.end = max(newInterval.end, intervals[i].end);
}
i ++;
}
ret.push_back(newInterval);
return ret;
}
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).
You may assume that the intervals were initially sorted according to their start times.
Example 1:
Given intervals
[1,3],[6,9], insert and merge
[2,5]in
as
[1,5],[6,9].
Example 2:
Given
[1,2],[3,5],[6,7],[8,10],[12,16], insert and merge
[4,9]in
as
[1,2],[3,10],[12,16].
This is because the new interval
[4,9]overlaps with
[3,5],[6,7],[8,10].
AC代码:
vector<Interval> insert(vector<Interval>&
intervals, Interval newInterval) {
vector<Interval> ret;
if(intervals.empty())
{
ret.push_back(newInterval);
return ret;
}
int i = 0;
while(i < intervals.size())
{
//添加的区间与已知区间没有重叠区间
if(newInterval.end < intervals[i].start)
{
ret.push_back(newInterval);
while(i < intervals.size())
{
ret.push_back(intervals[i]);
i ++;
}
return ret;
}
else if(newInterval.start > intervals[i].end)
ret.push_back(intervals[i]);
//有重叠区间
else
{
newInterval.start = min(newInterval.start, intervals[i].start);
newInterval.end = max(newInterval.end, intervals[i].end);
}
i ++;
}
ret.push_back(newInterval);
return ret;
}
相关文章推荐
- [LeetCode] 57. Insert Interval
- [Leetcode]57. Insert Interval
- [leetcode] 57. Insert Interval 解题报告
- LeetCode 57. Insert Interval---Python实现
- leetcode 57. Insert Interval
- LeetCode 57. Insert Interval(插入区间)
- leetcode题解-57. Insert Interval
- LeetCode 57. Insert Interval
- [LeetCode] 57. Insert Interval 解决思路
- Leetcode 56. Merge Intervals && 57. Insert Interval(Hard)
- leetcode 57. Insert Interval
- leetcode 57. Insert Interval
- LeetCode --- 57. Insert Interval
- [Leetcode] 57. Insert Interval
- [LeetCode] 57. Insert Interval
- Leetcode:57. Insert Interval
- LeetCode 57. Insert Interval/56. Merge Intervals
- (Java)LeetCode-57. Insert Interval
- [LeetCode] 57. Insert Interval 插入区间
- Leetcode 57. Insert Interval (Medium) (java)