leetcode_c++:Insert Intervals(057)
2016-05-31 22:52
260 查看
题目
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].
算法
复杂度:O(N)class Solution{ public: vector<Interval> insert(vector<Interval> &intervals,Interval newInterval){ vector<Interval>::iterator it=intervals.begin(); vector<Interval>::iterator it_head=it; //head of earse item while(it != intervals.end()){ if(newInterval.end<it->start){ it=intervals.erase(it_head,it); intervals.insert(it,newInterval); return intervals; }else if(newInterval.start>it->end){ it++; it_head++; }else{ newInterval.start=min(newInterval.start,it->start); newInterval.end=max(newInterval.end,it->end); it++; } } if(it_head!=it) it=intervals.erase(it_head,it); intervals.insert(intervals.end(), newInterval); return intervals; } };
相关文章推荐
- Ubuntu下配置和编译cpp-ethereum客户端
- C和C++的区别:const
- c++基础:学生成绩
- leetcode_c++:Merge_Intervals(056)
- C语言运行时库中哪些API在UWP中不可用?
- C++ 逆序输出不多于5位的正整数
- 【C++ 学习】03 做个遵纪守法的码农
- error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 解决方法
- leetcode #72 in cpp
- C++经验(一)
- 【C++ 学习】02 符号的十八般武艺
- C++中类对象的内存布局和占用空间
- C++11智能指针读书笔记;
- visual studio2015下载地址
- C++ Primer 类 12.4 explicit 构造函数
- C语言 面试
- C++类之const
- C语言学习篇-4运算符及其优先级
- 【C++ 学习】01 资源整理
- 栈顺序存储结构的C++模板类程序源代码