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

    Solution:

     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> result = new ArrayList<Interval>();
    13         if (intervals.size()==0){
    14             result.add(newInterval);
    15             return result;
    16         }
    17         
    18         int next = 0;
    19         while (next<intervals.size() && intervals.get(next).end < newInterval.start){
    20             result.add(intervals.get(next));
    21             next++;
    22         }
    23         
    24         while (next<intervals.size() && intervals.get(next).start <= newInterval.end){
    25             newInterval.start = Math.min(intervals.get(next).start,newInterval.start);
    26             newInterval.end = Math.max(intervals.get(next).end,newInterval.end);
    27             next++;
    28         }
    29         
    30         result.add(newInterval);
    31         
    32         while (next<intervals.size()){
    33             result.add(intervals.get(next));
    34             next++;
    35         }
    36         
    37         return result;
    38     }
    39 }
  • 相关阅读:
    DNS 查询长度
    WebSocket
    Overview of cookie persistence
    Linux Cluster
    keepalived + nginx 主主模式
    MIME 类型
    IaaS,PaaS,SaaS 的区别
    Linux下"负载均衡+高可用"集群的考虑点 以及 高可用方案说明(Keepalive/Heartbeat)
    交换机链路聚合与Linux的bond模式对照
    DHCP 中继
  • 原文地址:https://www.cnblogs.com/lishiblog/p/4096653.html
Copyright © 2011-2022 走看看