31_leetcode_ Insert Interval
2014-06-08 10:13
363 查看
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]
1:当数组为null的时候;2:遍历数组,并检测当前interval与数组当前interval之间的关系并做出相应的判断;3:遍历完成后,把最后的interval保存到数组中
vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) {
vector<Interval> result;
if(intervals.size() == 0)
{
result.push_back(newInterval);
return result;
}
int size = (int)intervals.size();
for(int i = 0; i < size; i++)
{
if(newInterval.end < intervals[i].start)
{
result.push_back(newInterval);
newInterval.start = intervals[i].start;
newInterval.end = intervals[i].end;
}
else if(newInterval.end <= intervals[i].end)
{
newInterval.end = intervals[i].end;
if(newInterval.start > intervals[i].start)
{
newInterval.start = intervals[i].start;
}
}
else
{
if(newInterval.start > intervals[i].end)
{
result.push_back(intervals[i]);
}
else if (newInterval.start > intervals[i].start)
{
newInterval.start = intervals[i].start;
}
}
}
result.push_back(newInterval);
return result;
}
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]
1:当数组为null的时候;2:遍历数组,并检测当前interval与数组当前interval之间的关系并做出相应的判断;3:遍历完成后,把最后的interval保存到数组中
vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) {
vector<Interval> result;
if(intervals.size() == 0)
{
result.push_back(newInterval);
return result;
}
int size = (int)intervals.size();
for(int i = 0; i < size; i++)
{
if(newInterval.end < intervals[i].start)
{
result.push_back(newInterval);
newInterval.start = intervals[i].start;
newInterval.end = intervals[i].end;
}
else if(newInterval.end <= intervals[i].end)
{
newInterval.end = intervals[i].end;
if(newInterval.start > intervals[i].start)
{
newInterval.start = intervals[i].start;
}
}
else
{
if(newInterval.start > intervals[i].end)
{
result.push_back(intervals[i]);
}
else if (newInterval.start > intervals[i].start)
{
newInterval.start = intervals[i].start;
}
}
}
result.push_back(newInterval);
return result;
}
相关文章推荐
- leetcode | Insert Interval
- [LeetCode] Insert Interval
- LeetCode-Insert Interval
- [leetcode] Insert Interval
- LeetCode – Insert Interval
- LeetCode Insert Interval
- LeetCode Insert Interval
- 【LeetCode】Insert Interval
- LeetCode:Insert Interval
- LeetCode - Insert Interval
- LeetCode 57 - Insert Interval
- leetcode: Insert Interval
- 2015.04.01 Leetcode Insert interval
- 【LeetCode】Insert Interval 解题报告
- [LeetCode] Insert Interval
- Insert Interval -- LeetCode
- [leetcode 57] Insert Interval (待修改)
- Leetcode-Insert Interval
- leetcode-057 Insert Interval
- [leetcode]Insert Interval