57. Insert Interval
来源:互联网 发布:视频软件 知乎 编辑:程序博客网 时间:2024/05/21 06:47
这道题让我们在一系列非重叠的区间中插入一个新的区间。
方法是,遍历区间集合,如果新区间的end小于区间i的start,那新区间的end肯定也小于后面区间的start,就不用往后面遍历了,把新区间加入res里,集合里后面的区间也加入res里。如果区间i的end大于新区间的start,说明新区间和这个区间有交集,那么不把区间i加入res里,更新新区间,继续往后遍历,等到新区间的end小于区间i的start,说明所有和新区间有交集的都合并好了,那么就把新区间加入结果集,再把后面的集合加入结果集就好了。
/** * 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> res; auto iter = intervals.begin(); for(; iter != intervals.end(); ++iter){ if(iter->start > newInterval.end) break; else if(iter->end < newInterval.start){ res.push_back(*iter); } else{ newInterval.start = min(newInterval.start, iter->start); newInterval.end = max(newInterval.end, iter->end); } } res.push_back(newInterval); for(; iter != intervals.end(); ++iter){ res.push_back(*iter); } return res; }};
阅读全文
0 0
- LeetCode --- 57. Insert Interval
- [Leetcode] 57. Insert Interval
- [LeetCode]57.Insert Interval
- [leetcode] 57.Insert Interval
- 57. Insert Interval
- [leetcode] 57.Insert Interval
- 57. Insert Interval
- 57. Insert Interval
- lkeetcode 57. Insert Interval
- 57. Insert Interval
- Leetcode 57. Insert Interval
- LeetCode 57. Insert Interval
- 57. Insert Interval
- 57. Insert Interval
- 57. Insert Interval
- 57. Insert Interval
- LeetCode 57. Insert Interval
- [LeetCode] 57. Insert Interval
- 贝佐斯的焦虑:结盟微软Cortana和智能音箱的生态战
- 京东超市升级双百亿俱乐部 确立500快消品牌销售额过亿目标
- 性能优化登顶安卓阵营,vivo X20闪耀王者荣耀巅峰之战
- 从源头重塑整个机器视觉行业,这家中国公司要搞事情
- OSGI实战教程【Spring DM】编写一个简单的Bundle组件
- 57. Insert Interval
- Windows 10 秋季创作者更新将于10月17日推出,混合现实功能成亮点
- codeforces706B 【python】
- Linux基础知识
- LVS+Keepalived实现高可用负载均衡(Web群集)
- Centos中导入sql文件到mysql数据库
- linux进程管理
- 剑指offer——面试题22:栈的压入、弹出序列
- 链表和二叉树