[LeetCode] 035: Insert Interval
2017-09-10 20:49
330 查看
[Problem]
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
Example 2:
Given
This is because the new interval
[Solution]
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].
[Solution]
/** * 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: // the start of the newInterval always later than the start of the last interval in intervals void insertInterval(vector<Interval> &intervals, Interval newInterval){ // empty if(intervals.size() == 0){ intervals.push_back(newInterval); } else{ // the last of the intervals Interval interval = intervals[intervals.size()-1]; // not intersected if(newInterval.start > interval.end){ intervals.push_back(newInterval); } // intersected else if(newInterval.start <= interval.end){ if(newInterval.end > interval.end){ intervals[intervals.size()-1].end = newInterval.end; } } } } // insert newInterval into intervals vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) { // Start typing your C/C++ solution below // DO NOT write int main() function // result vector<Interval> res; bool inserted = false; // whether the newInterval has been inserted for(int i = 0; i < intervals.size(); ++i){ if(!inserted && newInterval.start <= intervals[i].start){ inserted = true; insertInterval(res, newInterval); } insertInterval(res, intervals[i]); } // the intervals is empty or the newInterval is the last one if(!inserted){ insertInterval(res, newInterval); } return res; } };说明:版权所有,转载请注明出处。Coder007的博客
相关文章推荐
- LeetCode(035) Search Insert Position (Java)
- leetcode 57:Insert Interval
- leetcode之Insert Interval
- [LeetCode] Insert Interval 插入区间
- 【LeetCode】Insert Interval 解题报告
- [LeetCode]题解(python):057-Insert Interval
- Leetcode|Insert Interval
- 【LeetCode】InsertInterval
- LEETCODE: Insert Interval
- [leetcode]Insert Interval
- Insert Interval leetcode java
- leetcode 035 Search Insert Position
- LeetCode: Insert Interval
- leetcode Insert Interval
- 【LeetCode-面试算法经典-Java实现】【035-Search Insert Position(搜索插入位置)】
- Java for LeetCode 057 Insert Interval
- Leetcode-Array-57(insert Interval)
- LeetCode 035 Search Insert Position
- leetcode 57: Insert Interval
- LeetCode_OJ【57】Insert Interval