博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode: Merge/Insert Interval
阅读量:6565 次
发布时间:2019-06-24

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

题目

Given a collection of intervals, merge all overlapping intervals.

For example,

Given [1,3],[2,6],[8,10],[15,18],
return [1,6],[8,10],[15,18].

 

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

 
思路:
1. 模拟题
2. Insert Interval 是 Merge Interval 的扩展, 将 newInterval 插入到 Intervals 即可转化成 Merge Interval
 
代码
bool sortInterval(const Interval &i1, const Interval &i2) {	return i1.start < i2.start;}class Solution {public:    vector
merge(vector
&intervals) { vector
newVec; if(intervals.size() <= 0) return newVec; sort(intervals.begin(), intervals.end(), sortInterval); for(int i = 0; i < intervals.size(); i ++) { Interval nextInt = intervals[i]; if(i == intervals.size()-1) { newVec.push_back(nextInt); break; } Interval tmp = intervals[i+1]; while(tmp.start <= nextInt.end) { nextInt.end = max(tmp.end, nextInt.end); i++; if(i+1

  

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

你可能感兴趣的文章
ClipDrawable--水漫起来的效果
查看>>
python中的import
查看>>
osd内的pg数量
查看>>
shell脚本与mysql交互方法汇总
查看>>
Cron 表达式详解和案例
查看>>
Android - 软件自动更新的实现
查看>>
oracle数据库远程不落地导入本地数据库
查看>>
Unix调试的瑞士军刀:lsof(转)
查看>>
dns相关内容
查看>>
JavaScript骚操作
查看>>
MySQL的主从复制与读写分离原理
查看>>
luaCPU性能测试
查看>>
mysql优化
查看>>
【批处理】for循环中产生不同的随机数
查看>>
Gradle -help
查看>>
/etc/security/limits.conf
查看>>
js 框架
查看>>
android 实现ListView中添加RaidoButton单选
查看>>
WS-Security 中文问题&Stax(Streaming API for XML) (二)
查看>>
dos 分页显示及查看应用程序占用端口
查看>>