【LeetCode 57】插入区间
2024-08-25 05:52:16
【题解】
这题要分四种情况。
第一种。区间在所有区间的前面。
第二种。区间在所有区间的后面。
第三种。区间在某两个区间之间但是没有交集。
第四种。区间和某个区间产生了相交。
对于第四种枚举第一次产生相交的区间是哪一个。
然后往后尝试延伸。看看会不会合并更多区间。
【代码】
class Solution {
public:
vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) {
vector<vector<int>> ans;ans.clear();
vector<int> temp;temp.resize(2);
int len = intervals.size();
//在所有区间前面
if (!intervals.empty() && newInterval[1]<intervals[0][0]){
ans.push_back(newInterval);
for (int i = 0;i<len;i++) ans.push_back(intervals[i]);
return ans;
}
//在区间之间但是没有交集。
for (int i = 0;i < len-1;i++){
ans.push_back(intervals[i]);
if (intervals[i][1]<newInterval[0] &&
newInterval[1]<intervals[i+1][0]){
ans.push_back(newInterval);
for (int j = i+1;j<len;j++){
ans.push_back(intervals[j]);
}
return ans;
}
}
ans.clear();
//区间和某些原来的区间产生了交集。
for (int i = 0;i < len;i++){
if (intervals[i][1]>=newInterval[0]){
int l = min(intervals[i][0],newInterval[0]);
int r = max(intervals[i][1],newInterval[1]);
while (i+1<len && intervals[i+1][0]<=r){
r = max(r,intervals[i+1][1]);
i++;
}
temp[0] = l;temp[1] = r;
ans.push_back(temp);
for (int j = i+1;j<len;j++) ans.push_back(intervals[j]);
return ans;
}else{
temp = intervals[i];
ans.push_back(temp);
}
}
ans.push_back(newInterval);
return ans;
}
};
最新文章
- Android 多线程----AsyncTask异步任务详解
- HDU 1754 I Hate It(线段树单点更新区间最值查询)
- Delphi如何打开DBF数据库
- HTTP权威指南学习心得
- hdu 4599 Dice 概率DP
- TCP/IP详解学习笔记(9)-TCP协议概述
- mongodb教程二
- <;PHP>;字符串处理代码
- 浅析libev的ev_signal过程
- (转)DataTable添加行出现“该行已经属于另一个表”的错误!
- JBoss + EJB3 + MySql : 开发第一个EJB
- MySQL中binlog参数:binlog_rows_query_log_events
- 小z的袜子
- CentOS7上安装并配置Nginx、PHP、MySql
- MSQL基本增删改语句汇总练习
- mysql limit 性能问题分析
- [ExcelHome]VLOOKUP的别样用法
- SQL 必知必会&#183;笔记<;3>;过滤数据
- nrf24l01 IRQ一直为高电平
- CSS矩形盒子的四个边界
热门文章
- day31—CSS Reset 与页面居中布局
- 第1 章 mysql数据库之简单的DDL和DML sql语句
- (appium+python)UI自动化_09_unittest批量运行测试用例&;生成测试报告
- Recurrent Neural Network(1):Architecture
- springboot异步任务、定时任务
- ASP精华[转]
- [暑假集训Day1T2]北极通讯网络
- NavBarControl控件 2015-07-23 16:56 2人阅读 评论(0) 收藏
- 【学习总结】Python-3-转义字符
- django框架常用的数据库迁移命令