Leetcode027--插入区间
来源:互联网 发布:phantomjs pdf python 编辑:程序博客网 时间:2024/05/22 06:22
一、原题
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]
. 二、中文
给定一系列非覆盖的区间,插入一个新的区间,有必要的时候进行区间合并,区间开始是以起始时间进行合并的
三、举例
原来的区间是[2,5] 第二个区间是[6,9] 当我们插入一个区间[4,7]后,最后得到的区间是[2,9]
四、思路
1、如果插入的区间比集合的end小,就直接插入
2、如果插入的区间的end比带插入区间的start小,就插入到里边
3、插入区间有重叠,更新就更新插入区间,start选小的,end选大的
五、程序
package code;import java.util.*;class Interval2 { int start; int end; Interval2(){start = 0;end = 0;} Interval2(int s, int e){start = s;end = e;}}public class LeetCode35{public static void main(String args[]){LinkedList<Interval2> num = new LinkedList<Interval2>();Interval2 in1 = new Interval2(1, 3);Interval2 in2 = new Interval2(4, 6);Interval2 in3 = new Interval2(8, 10);Interval2 in4 = new Interval2(13, 20);num.add(in1);num.add(in2);num.add(in3);num.add(in4);Interval2 add = new Interval2(5, 9);LinkedList<Interval2> list = insertRegion(num, add);Iterator<Interval2> it = list.iterator();while(it.hasNext()){Interval2 iter = it.next();System.out.print(iter.start+" ");System.out.print(iter.end+" ");}}public static LinkedList<Interval2> insertRegion(LinkedList<Interval2> intervals, Interval2 newInterval) {//保存结果集LinkedList<Interval2> res = new LinkedList<Interval2>();//输入集如果是非空的if(intervals != null){for(Interval2 item : intervals){if(newInterval == null || item.end < newInterval.start){res.add(item);}//将比插入区间大的区间插入到结果集中else if(item.start > newInterval.end){res.add(newInterval);res.add(item);newInterval = null;}//插入区间有重叠,更新插入区间else{newInterval.start = Math.min(newInterval.start, item.start);newInterval.end = Math.max(newInterval.end, item.end);}}}return res;}}
------------------------output----------------------------
1 3 4 10 13 20
1 0
- Leetcode027--插入区间
- 插入区间
- 插入区间
- 插入区间
- 插入区间
- 插入区间
- 插入区间
- 插入区间
- 插入区间,区间合并
- LeetCode027 Remove Element
- Insert Interval 插入区间
- Insert Interval(区间插入)
- Insert Interval 插入区间
- 题目:插入区间
- 插入区间(算法)
- lintcode-插入区间
- 插入区间Insert Interval
- 插入区间 lintcode
- 利用Caffe做回归(regression)
- splay tree讲解
- console的使用及引申的输入输出重定向问题
- poj1606 Jugs
- 洛谷 P1880 石子合并
- Leetcode027--插入区间
- Struts2工作原理
- 嵌入式软件开发笔试题
- 学习lua之实现类
- poj1032 整数拆分
- 数据挖掘之聚类算法K-Means总结
- 在Ubuntu上做内核编程,要安装哪个包?
- [1]GDB调试应用程序
- 欢迎使用CSDN-markdown编辑器