• Insert Interval


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

    思路

    这道题可以在Merge Intervals基础上完成,时间复杂度有点高。

     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 List<Interval> insert(List<Interval> intervals, Interval newInterval) {
    12         int low = newInterval.start;
    13         int high = newInterval.end;
    14         ListIterator<Interval> iterator = intervals.listIterator();
    15         
    16         while(iterator.hasNext()){
    17             Interval interval = iterator.next();
    18             if(high < interval.start){
    19                 iterator.previous();
    20                 iterator.add(new Interval(low, high));
    21                 return intervals;
    22             }
    23             if(low > interval.end)
    24                 continue;
    25             else{
    26                 low = Math.min(low, interval.start);
    27                 high = Math.max(high, interval.end);
    28                 iterator.remove();
    29             }
    30         }//while
    31         intervals.add(new Interval(low, high));
    32         
    33         return intervals;
    34     }    
    35 }
  • 相关阅读:
    sql声明变量,及if -else语句、while语句的用法
    视图、事务
    索引
    相关子查询
    递归实现treeView下的省市联动
    创建sqlhelp类以封装对数据库的操作及对可空类型的操作
    ADO.Net操作数据库
    sql的case语句
    vue父组件异步数据子组件接收遇到的坑
    第一次用angularJS做后台管理点滴
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4255217.html
Copyright © 2020-2023  润新知