LeetCode-Insert Interval
来源:互联网 发布:万人网络营销软件站 编辑:程序博客网 时间:2024/06/11 20:47
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]
.
Code:
<span style="font-size:14px;">/** * 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: vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) { vector<Interval> result; const int length = intervals.size(); if (length == 0) { result.push_back(newInterval); return result; } if (newInterval.end < intervals[0].start) { intervals.insert(intervals.begin(), newInterval); return intervals; } if (newInterval.start > intervals[length-1].end) { intervals.push_back(newInterval); return intervals; } int index = 0; for (; index < length; ++index) if (intervals[index].end >= newInterval.start) break; else result.push_back(intervals[index]); newInterval.start = min(intervals[index].start, newInterval.start); for (; index < length; ++index) if (intervals[index].start > newInterval.end) break; newInterval.end = max(intervals[index-1].end, newInterval.end); result.push_back(newInterval); if (index != length) result.insert(result.end(), intervals.begin()+index, intervals.end()); return result; }};</span>
0 0
- LeetCode: Insert Interval & Merge 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]Insert Interval
- LeetCode-Insert Interval
- [leetcode] Insert Interval
- LeetCode - Insert Interval
- 【leetcode】Insert Interval
- leetcode Insert Interval
- 【leetcode】Insert Interval
- LeetCode Insert Interval
- angularjs(step by step):controller
- sscanf函数具体用法
- poj1472
- python xml.sax.handler.ContentHandler 的characters方法小结
- Linux I2C子系统驱动阐述
- LeetCode-Insert Interval
- BJOI2014 2014.8.13
- 01.策略模式 【STRATEGY PATTERN】
- Uva 6177
- HDU 2206 IP的计算
- JNI 笔记 (总结一些基础的,常用的)
- Leetcode--Sort List
- VB.net 控制Excel添加Sheet页,指定添加位置
- 【140814】VC++ 数据库编程教程 pdf 高清电子书