zoukankan      html  css  js  c++  java
  • 57. 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]

     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         List<Interval> res = new ArrayList<Interval>();
    13         int len = intervals.size();
    14         int i=0;
    15         while(i<len&&intervals.get(i).end<newInterval.start){
    16             res.add(intervals.get(i++));
    17         }
    18         while(i<len&&intervals.get(i).start<=newInterval.end){
    19             newInterval.start = Math.min(newInterval.start,intervals.get(i).start);
    20             newInterval.end = Math.max(newInterval.end,intervals.get(i).end);
    21             i++;
    22         }
    23         res.add(newInterval);
    24         while(i<len){
    25             res.add(intervals.get(i++));
    26         }
    27         return res;
    28     }
    29 }
    30 //the run time complexity could be O(n),the space complexity could be O(n);
  • 相关阅读:
    1755:菲波那契数列
    1788:Pell数列
    3089:爬楼梯
    7832:最接近的分数
    7649:我家的门牌号
    7216:Minecraft
    7213:垃圾炸弹
    2983:谁是你的潜在朋友
    2723:因子问题
    2722:和数
  • 原文地址:https://www.cnblogs.com/codeskiller/p/6362440.html
Copyright © 2011-2022 走看看