zoukankan      html  css  js  c++  java
  • 插入区间

    给出一个无重叠的按照区间起始端点排序的区间列表。

    在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。

    样例

    插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]

    插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]

     1 /**
     2  * Definition of Interval:
     3  * public classs Interval {
     4  *     int start, end;
     5  *     Interval(int start, int end) {
     6  *         this.start = start;
     7  *         this.end = end;
     8  *     }
     9  */
    10 
    11 class Solution {
    12     /**
    13      * Insert newInterval into intervals.
    14      * @param intervals: Sorted interval list.
    15      * @param newInterval: A new interval.
    16      * @return: A new sorted interval list.
    17      */
    18     public ArrayList<Interval> insert(ArrayList<Interval> intervals, Interval newInterval) {
    19         // write your code here
    20         if(intervals == null || newInterval == null ){
    21             return intervals;
    22         }
    23         if(intervals.size()==0){
    24             intervals.add(newInterval);
    25             return intervals;
    26         }
    27         ListIterator<Interval>  it = intervals.listIterator();
    28         while(it.hasNext()){
    29             Interval temInterval = it.next();
    30             if(newInterval.end < temInterval.start){
    31                 it.previous();
    32                 it.add(newInterval);
    33                 return intervals;
    34             }else{
    35                 if(temInterval.end<newInterval.start){
    36                     continue;
    37                 }else{
    38                     newInterval.start = Math.min(temInterval.start,newInterval.start);
    39                     newInterval.end  =  Math.max(temInterval.end,newInterval.end);
    40                     it.remove();
    41                 }
    42             }
    43         }
    44         intervals.add(newInterval);
    45         return intervals;
    46     }
    47 }
  • 相关阅读:
    ql语句中left join和inner join中的on与where的区别分析
    C#如何通过属性名称反射出属性本身
    mvc中查询字符串请求过长
    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
    后台二进制文件 在前台下载方法总结
    C#中try catch finally的执行顺序
    python生成随机密码
    Bridged(桥接模式)
    NAT(地址转换模式)
    TCP协议详解
  • 原文地址:https://www.cnblogs.com/wangnanabuaa/p/5024795.html
Copyright © 2011-2022 走看看