• 57.Insert Interval


    题目链接:https://leetcode.com/problems/insert-interval/description/

    题目大意:给处一个list,里面是按start排好序的非重叠区间,插入一个区间,将重叠区间合并。可见56题。

    法一(借鉴):不用排序直接比较更新。由于初始就是排好序的非重叠区间,所以直接用newInterval与原始list中的区间进行比较即可,如果有重叠则更新newInterval。代码如下(耗时16ms):

     1     public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
     2         LinkedList<Interval> res = new LinkedList<Interval>();
     3         int i = 0;
     4         //将所有start前未重叠部分add进res中
     5         while(i < intervals.size() && intervals.get(i).end < newInterval.start) {
     6             res.add(intervals.get(i++));
     7         }
     8         //如果有重叠部分,即intervals.get(i).start < newInterval.end时,则更新newInterval
     9         //注意这里是比较start和end,而不是end和end,因为如果比较end和end,会漏掉最后一个newInterval.end<intervals.get(i).end的区间
    10         //而可以想象,只要有intervals.get(i).start < newInterval.end,则说明有区间重叠
    11         while(i < intervals.size() && intervals.get(i).start < newInterval.end) {
    12             newInterval = new Interval(Math.min(intervals.get(i).start, newInterval.start), Math.max(intervals.get(i++).end, newInterval.end));
    13         }
    14         //将更新后的newInterval加入res
    15         res.add(newInterval);
    16         //将end后未重叠部分add进res中,其实这里初始给出的list已经保证了每个区间都未重叠
    17         while(i < intervals.size()) {
    18             res.add(intervals.get(i++));
    19         }
    20         return res;
    21     }
    View Code
  • 相关阅读:
    centos7 使用postgres
    centos7 Authentication failure
    centos 安装 jdk PostgreSQL
    JS遍历对象或者数组
    PHP简单 对象(object) 与 数组(array) 的转换
    IDEA 配置Tomcat 跑Jeecg项目
    kettle 安装mysql 驱动
    : Could not open a connection to your authentication agent
    java_Ninja实战过程
    设备判断
  • 原文地址:https://www.cnblogs.com/cing/p/8513319.html
Copyright © 2020-2023  润新知