博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode -- Insert Interval
阅读量:6218 次
发布时间:2019-06-21

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

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].

[解题思路]

新建一个ArrayList来保存得到的结果。因为对原来的集合进行操作时如下情况需要额外的操作:newInterval插入当前interval之前

1.newInterval.end < curInterval.start, 插入

2.newInterval.end > curInterval.start, continue

3.newInterval 与 curInterval 重合,合并得到新的newInterval 

1 /** 2  * Definition for an interval. 3  * public class Interval { 4  *     int start; 5  *     int end; 6  *     Interval() { start = 0; end = 0; } 7  *     Interval(int s, int e) { start = s; end = e; } 8  * } 9  */10 public class Solution {11     public static ArrayList
insert(ArrayList
intervals,12 Interval newInterval) {13 ArrayList
result = new ArrayList
();14 for (int i = 0; i < intervals.size(); i++) {15 Interval tmp = intervals.get(i);16 if (newInterval.end < tmp.start) {17 result.add(newInterval);18 for(int j = i; j < intervals.size(); j++){19 result.add(intervals.get(j));20 }21 return result;22 } else if (newInterval.start > tmp.end) {23 result.add(tmp);24 continue;25 } else {26 newInterval.start = Math.min(tmp.start, newInterval.start);27 newInterval.end = Math.max(tmp.end, newInterval.end);28 }29 }30 result.add(newInterval);31 return result;32 }33 }

 

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

你可能感兴趣的文章
数据结构学习心得系列(一)
查看>>
zoj 1586
查看>>
php 实现首字母大写。可做索引功能
查看>>
iframe 自适应高度
查看>>
在Microsoft Dynamic 365/2016环境使用LinqPad查询数据(不使用linqpad Microsoft Dynamic 365 Driver)...
查看>>
Ajax实现--javascript
查看>>
Linux文本文件及处理工具
查看>>
my28_mysql内存占用过高降低的方法
查看>>
Pexpect模块的安装
查看>>
MySQL- SHOW TABLE STATUS命令
查看>>
最少拦截系统
查看>>
二分搜索法查找
查看>>
WebBrowser(超文本浏览框)控件默认使用IE9,IE10的方法
查看>>
更新数据
查看>>
box-sizing什么时候用?常用的值都有什么?
查看>>
bootstrap table 控制checkbox在某些状态不显示
查看>>
YAML简介和简单说明
查看>>
如果没有 Android 世界会是什么样子?
查看>>
实验四 Android程序设计
查看>>
javascript-随机生成不重复的随机数
查看>>