57. Insert Interval
2016-06-04 20:25
218 查看
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
as
Example 2:
Given
as
This is because the new interval
题意有点晦涩,翻译一下就是例如给你
现在插入一个
思路和题56差不多,要多处理一下这个新插入的区间。
给定的区间集合是有序的,把【新区间】,插入到原来区间集合里的【合适位置】,所谓合适位置就是原来集合是按区间左端点升序排列的,插入以后还要满足新集合按照左端点升序排列,再套用题Merge
Intervals的处理办法进行合并。
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],[3,5],[6,7],[8,10],[12,16],
现在插入一个
[4,9]进行合并,问合并之后是什么样子,这个例子合并之后应该是
[1,2],[3,10],[12,16].这个样子。
思路和题56差不多,要多处理一下这个新插入的区间。
给定的区间集合是有序的,把【新区间】,插入到原来区间集合里的【合适位置】,所谓合适位置就是原来集合是按区间左端点升序排列的,插入以后还要满足新集合按照左端点升序排列,再套用题Merge
Intervals的处理办法进行合并。
public List<Interval> insert(List<Interval> intervals, Interval newInterval) { List<Interval> retlist=new ArrayList<>(); int len=intervals.size(); if(len<1) { retlist.add(newInterval); return retlist; } int index=0; while(index<len&&newInterval.start>=intervals.get(index).start) index++; if(newInterval.start<intervals.get(0).start) intervals.add(0, newInterval); else { intervals.add(index, newInterval); } len++; boolean[] used=new boolean[len]; for(int i=0;i<len;i++) if(!used[i]) { used[i]=true; Interval in1=intervals.get(i); int newstart=in1.start; int newend=in1.end; for(int j=i+1;j<len;j++) if(!used[j]) { Interval in2=intervals.get(j); if(in2.start<=newend) { newend=Math.max(newend, in2.end); used[j]=true; } else { break; } } retlist.add(new Interval(newstart, newend)); } return retlist; }
相关文章推荐
- 手机开发实战67——MIME介绍2
- [LeetCode][4]Median of Two Sorted Arrays解析 -Java实现
- Best Time to Buy and Sell Stock
- 手机开发实战66——MIME介绍1
- PAT-L1-020. 帅到没朋友
- LeetCode:Implement strStr()
- 【杭电】[1863]畅通工程
- 使用nfs服务器将Windows和ubuntu进行文件共享
- clip 用法和兼容性(转载)
- Java序列化
- 有刷电机结构图
- 模拟实现memmove
- CentOS 6.6 下源码编译安装MySQL 5.7.5
- Python--基础学习--流程控制
- 4. 使用别的json解析框架【从零开始学Spring Boot】
- 调用系统下载安装apk
- 56. Merge Intervals
- 手机开发实战61——TCP/IP协议简介
- Android 生成xml文件
- Chrome浏览器导入Burp Suite证书