lintcode-插入区间_给出一个无重叠的,按区间-程序员宅基地

技术标签: Lintcode  

给出一个无重叠的按照区间起始端点排序的区间列表。

在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

您在真实的面试中是否遇到过这个题?

样例

插入区间[2, 5][[1,2], [5,9]],我们得到 [[1,9]]

插入区间[3, 4] [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]


/**
 * Definition of Interval:
 * classs Interval {
 *     int start, end;
 *     Interval(int start, int end) {
 *         this->start = start;
 *         this->end = end;
 *     }
 */
class Solution {
public:
    
    bool cmp(Interval &a,Interval &b){
        if(a.start==b.start)
            return a.end>b.end;
        return a.start>b.start;    
    } 
    vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) {
        
        if(intervals.empty()){
            intervals.push_back(newInterval);
            return intervals;
        }
     
        int i=0,size=intervals.size();
                
        while(i<size&&cmp(newInterval,intervals[i])){
            ++i;
        }
        intervals.insert(intervals.begin()+i,newInterval);
        size=intervals.size();
        for(int i=0;i<size-1;++i){
                if(intervals[i+1].start>=intervals[i].start&&intervals[i+1].end<=intervals[i].end){
                    intervals.erase(intervals.begin()+i+1);
                    --size;
                    --i;
                }
                else if(intervals[i+1].start<=intervals[i].end){
                    intervals[i].end=intervals[i+1].end;
                    intervals.erase(intervals.begin()+i+1);
                    --size;
                    --i;
                }
        }
        return intervals;
    }
};


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ljlstart/article/details/48279025

智能推荐

黑鲨游戏手机再推新品,游戏手机市场将会迎来怎样变数? ...-程序员宅基地

文章浏览阅读200次。小米创始人兼CEO雷军、京东零售子集团3C电子及消费品零售事业群陈婷、优点科技刘江峰都来了,谁能有这么大的号召力?答案是黑鲨游戏手机。3月18日晚,黑鲨游戏手机在北京举行了新一代产品的发布会。发布会开场后,直奔“产品”主题。 雷锋网划重点,汇总产品信息如下: X-核心:黑鲨设计DNA持续进化,更具速度感和人体工学的全系设计语言 金属加玻璃的双..._红魔mare怎么游戏界面返回左面

Python总结第三篇之字符串_python string中第三个a-程序员宅基地

文章浏览阅读95次。字符串算是python 文本处理中用到的非常多的内容了,下面就对此总结下。查找字符串#!usr/bin/env import reimport stringtarget = 'test.txt'file = open(target) keyword = 'help'for line in file: # 这一行的目的是为了查看,是否有从首位开始就与keyword匹配的字符串..._python string中第三个a

STM8S(105K4)使用笔记——活跃停机模式的配置与AWU唤醒_stm8s awu时间-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏6次。STM8S提供的可编程的电源管理等待(Wait)模式:通过WFI指令进入。该模式下CPU将停止运行,但外设与中断控制器仍保持运行。该模式下可以通过外设时钟门控、降低CPU时钟频率、选择低功耗时钟源(LSI,HSI)进一步降低功耗。在等待模式下,所有寄存器与RAM的内容不变,进入等待模式前所定义的时钟配置也不会在进入等待模式后改变。每当一个内部或外部中断产生时,CPU从等待模式唤醒并恢复工作。停机(Halt)模式:通过HALT指令进入。该模式下主时钟停止,即由fMASTER提供时钟的CP_stm8s awu时间

支付宝办公神器语雀上线“空间”功能,8大实用指南快速上手!-程序员宅基地

文章浏览阅读1.3k次。近日,蚂蚁金服旗下知识创作与分享工具语雀发布“空间功能”,上周我们对这一办公室神器进行了介绍。(详情请戳:阿里员工都在用的知识管理工具,究竟有何特别?)总体而言,语雀支持在线文档编写、多人协作、灵活的团队管理和金融级安全存储的基础上,新增“空间”功能,助力企业知识管理,帮助企业快速提升团队内容协作与知识管理效率,同时搭建企业知识门户,系统沉淀企业数据资产。语雀是蚂蚁金服体验科技研发的创新产品,目前..._语雀我自己和个人空间区别

termux安装docker-程序员宅基地

文章浏览阅读1.3w次,点赞3次,收藏44次。目录安装??runc安装root-repo安装 docker ??国内的资料查了很久,也都是在termux上装个子系统,再在子系统中装docker,太繁琐了安装runcpkg instal runc安装root-repopkg install root-repo安装 dockerpkg install docker ..._termux安装docker

MongoDB对不重复数据分组进行计数_mongotemplate分组后统计某字段不重复的值-程序员宅基地

文章浏览阅读3.1k次。在实际环境中,经常会用到对数据进行去重计数1、采用mongodb的distinctdb.collection.distinct(&amp;quot;key&amp;quot;).lengthdb 是数据库名称,collection是集合名称,key是去重的字段,根据自己的名称进行修改该图显示了对uid去重后的数据总数2、采用MongoDB 的aggregate进行分组计数官方文档地址 https://docs...._mongotemplate分组后统计某字段不重复的值

随便推点

网络交换机配置技巧全攻略-程序员宅基地

文章浏览阅读196次。交换机的配置一直以来是非常神秘的,不仅对于一般用户,对于绝大多数网管人员来说也是如此,同时也是作为网管水平高低衡量的一个重要而又基本的标志。这主要在两个原因,一是绝大多数企业所配置的交换机都是桌面非网管型交换机,根本不需任何配置,纯属“傻瓜”型,与集线器一样,接上电源,插好网线就可以正常工作;另一方面多数中、小企业老总对自己的网管员不是很放心,所以即使购买的交换机是网管型的,..._网络交换机配置

PHP面向对象编程基本原则-程序员宅基地

文章浏览阅读41次。首先祝大家节日快乐!!!额,不知道你们剁手没,小梦是没有!整整已经错过了第九个年头!小伙伴是不是有一种感觉,PHP入门的时候简直爱不释手,总是把 ”PHP是世界上最好的语言“ 挂在嘴边上,觉得他简单,快速完成项目!然儿,终于有一天,你开发的项目过于...

找个页面中出现次数最多的三个标签_统计使用次数最多的三个标签名称-程序员宅基地

文章浏览阅读150次。let arr = Object.entires([...document.getElementByTagName('*')].map(v => v.tagName).reduce((obj, a)=> { obj[a] = obj[a] ? obj[a] + 1 : 1; return obj;}, {}));arr.sort((a,b) => b[1] - a[1]);console.table(arr.slice(0,2))_统计使用次数最多的三个标签名称

c# 低功耗蓝牙_c# - 如何使用C#手动绑定到WinForm中的蓝牙低能耗设备? - 堆栈内存溢出...-程序员宅基地

文章浏览阅读754次。我想到了。 我走在正确的轨道上。使用以下连接后:var dev = await BluetoothLEDevice.FromBluetoothAddressAsync(args.BluetoothAddress);您需要执行自定义配对:var prslt = await device.DeviceInformation.Pairing.Custom.PairAsync(DevicePairing..._bluetoothledevice.frombluetoothaddressasync

命令构建gradle项目_Gradle 的下载安装配置以及创建第一个Gradle 项目-程序员宅基地

文章浏览阅读275次。1. 什么是Gradle?Gradle是一个开源的构建自动化工具,专注于灵活性和性能。 Gradle构建脚本使用Groovy或Kotlin DSL编写。 阅读Gradle功能,了解Gradle的功能。高度可定制 - Gradle以一种可以以最基本的方式定制和扩展的方式建模。快速 - Gradle通过重用先前执行的输出,仅处理已更改的输入以及并行执行任务来快速完成任务。功能强大 - Gradle是A..._gradle model platforms

html cookie数据交互,前端持久化之浏览器存储技术(localStorage、sessionStorage 、session、cookies)...-程序员宅基地

文章浏览阅读398次。表格一览特性cookielocalStoragesessionStorageindexDB数据生命周期一般由服务器生成,能够设置过期时刻;前端选用和js-cook* a q G F ,ie等组件也能够生D P e b ;成除非被整理,不然一向存在;阅读器封闭还会保存在本地,可是不支持跨阅读器页面封闭就整理改写依然存在,不支持跨页面交互除非被整理,不然一向存在数据存储巨细4N R p [ $ % 3..._html httponly localstorage

推荐文章

热门文章

相关标签