zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    彻悟大师语录
    读书
    复变函数简要
    【洛谷P4781】【模板】拉格朗日插值
    【洛谷P4585】火星商店问题
    【YbtOJ#593】木棍问题
    【YbtOJ#893】带权的图
    【洛谷P4735】最大异或和
    【洛谷P5787】二分图 /【模板】线段树分治
    【ARC098D】Donation
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4255217.html
Copyright © 2011-2022 走看看