*Insert Interval
2016-01-08 11:36
369 查看
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
Example 2:
Given
This is because the new interval
与上一题基本一样的解法。
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].
与上一题基本一样的解法。
public class Solution { public List<Interval> insert(List<Interval> intervals, Interval newInterval) { List<Interval> res = new ArrayList<Interval>(); intervals.add(newInterval); res = merge(intervals); return res; } public List<Interval> merge(List<Interval> intervals) { if (intervals == null || intervals.size() <= 1) { return intervals; } Collections.sort(intervals, new IntervalComparator()); List<Interval> res = new ArrayList<Interval>(); int i=0; while(i<intervals.size()) { Interval newint = new Interval(); int newstart = intervals.get(i).start; int newend = intervals.get(i).end; int j=i+1; while(j<intervals.size()&&newend>=intervals.get(j).start) { newend = Math.max(newend,intervals.get(j).end); j++; } newint.start=newstart; newint.end=newend; res.add(newint); if(j!=i+1) i=j; else i++; } return res; } private class IntervalComparator implements Comparator<Interval> { public int compare(Interval a, Interval b) { return a.start - b.start; } } }
相关文章推荐
- 【转】对测试用例中异常流的思考
- 一年过去了,打算过年回家了
- 求而不得,舍而不能,得而不惜
- linux文件系统常用命令-42
- 阿里云RDS迁移mysql数据库
- outlook2007老是在创建项目索引
- Unity教程之-在Unity3d中加载外部图片的两种方法
- 运算符
- JSON 修改问题:浅拷贝 和 深拷贝
- shell下整数运算
- 获取最近几天日期
- python None与Null
- css3 transition effect(其它效果)
- 华为OJ题目(十二):挑7
- android wifi自动连接指定wifi
- activity文档
- 微信收费事件背后被广泛忽略的技术细节
- (java)Jump Game II
- 位运算与应用
- mysql varchar 类型 日期查询范围