博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Insert Interval
阅读量:4070 次
发布时间:2019-05-25

本文共 1693 字,大约阅读时间需要 5 分钟。

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].

既然有序了,就简单了。

class Solution {public:    vector
insert(vector
&intervals, Interval newInterval) { int i = 0; int len = intervals.size(); if(0 == len) { intervals.push_back(newInterval); return intervals;} vector
re; //find the insert position of start. while(i < len && intervals[i].end < newInterval.start){ re.push_back(intervals[i]); ++i; } //at the right, if(i == len){re.push_back(newInterval); return re; } int j = i; //find the insert position of end. while(j < len && intervals[j].end < newInterval.end){ ++j; } Interval jion; jion.start = min(intervals[i].start, newInterval.start); if(j == len){ jion.end = newInterval.end; re.push_back(jion); return re; } if(newInterval.end < intervals[j].start){ --j; jion.end = newInterval.end; re.push_back(jion); } else{ jion.end = intervals[j].end; re.push_back(jion); } ++j; while(j < len){ re.push_back(intervals[j]); ++j; } return re; }};

转载地址:http://drlji.baihongyu.com/

你可能感兴趣的文章
更改 ceph journal 位置
查看>>
docker private registry using rados beckend
查看>>
使用 docker 后出现的网络异常现象
查看>>
ceph ( requests are blocked ) 异常解决方法
查看>>
ceph 报警 [ low disk space] 解决
查看>>
python 调用 lvs 脚本 [备忘]
查看>>
openstack 命令行管理二十一 - 云盘管理 (备忘)
查看>>
docker 文件位置[备忘]
查看>>
rhel7 kickstart 参考[备忘]
查看>>
DNS请求分析
查看>>
docker - 资源限制
查看>>
puppet 配置 1. 服务器, 客户端配置说明
查看>>
puppet 配置 2 模块
查看>>
puppet 配置 3. 资源
查看>>
打造自己的 DockerImage
查看>>
rhel7.2 优化技巧
查看>>
megacli 划分, 删除 raid 方法备忘
查看>>
ceph - crush map 与 pool
查看>>
openstack 管理二十二 - cinder 连接多个存储 backend
查看>>
puppet 配置 3.1 管理 sysct.conf
查看>>