博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【一天一道LeetCode】#57. Insert Interval
阅读量:4197 次
发布时间:2019-05-26

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

一天一道LeetCode系列

(一)题目

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、当intervals[i].end
newInterval.start的时候,确定合并后的interval的start值3、当找到最后一个满足intervals[i].start>newInterval.end的时候,确定合并后的interval的end值*//** * 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
insert(vector
& intervals, Interval newInterval) { vector
ret; if(intervals.size()==0){
//特殊情况 ret.push_back(newInterval); return ret; } int i = 0; Interval tmp; while(i
newInterval.start的i值  //这里需要注意当newInterval比vector里面的值都大的情况 tmp.start = min(i==intervals.size()?newInterval.start:intervals[i].start,newInterval.start); tmp.end = newInterval.end; while(i
<=newInterval.end) { tmp.end = max(intervals[i].end,newInterval.end);//找到合并后的end值 i++; } ret.push_back(tmp); while(i

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

你可能感兴趣的文章
QC数据库表结构
查看>>
自动化测试工具的3个关键部分
查看>>
测试工具厂商的编程语言什么时候“退休”?
查看>>
QTP中为什么恢复场景(Recovery Scenario)没有被触发?
查看>>
资源监控工具 - Hyperic HQ
查看>>
LoadRunner中Concurrent与Simultaneous的区别
查看>>
SiteScope - Agentless监控
查看>>
QTP的智能识别(Smart Identification)过程
查看>>
LoadRunner各协议所需耗费的内存资源表
查看>>
AutomatedQA收购Smart Bear?
查看>>
使用QTP进行WEB页面性能测试
查看>>
LoadRunner的VS.NET 2005插件
查看>>
LoadRunner中如何验证下载的文件大小、统计下载时间、度量下载速度?
查看>>
LoadRunner脚本评审Checklist
查看>>
在LoadRunner中设置HTTP请求time-out的时间
查看>>
在LoadRunner脚本中实现随机ThinkTime
查看>>
LoadRunner9.51中文帮助手册
查看>>
RPT录制问题
查看>>
RPT8.0
查看>>
RPT8.1新特性
查看>>