zoukankan      html  css  js  c++  java
  • [LeetCode] 57. Insert Interval Java

    题目:

    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].

    题意及分析:给出一个按升序排序的非重叠区间序列,插入一个新区间,合并有重叠的区间。

    代码:

    /**
     * Definition for an interval.
     * public class Interval {
     *     int start;
     *     int end;
     *     Interval() { start = 0; end = 0; }
     *     Interval(int s, int e) { start = s; end = e; }
     * }
     */
    class Solution {
        //给出一个按升序排序的非重叠区间序列,插入一个新区间,合并有重叠的区间
        public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
           List<Interval> res = new ArrayList<>();
            int i=0;
            while(i<intervals.size() && intervals.get(i).end<newInterval.start){ //交叉区间之前的直接加入
                res.add(intervals.get(i++));
            }
            while(i<intervals.size() && intervals.get(i).start <= newInterval.end){     //有交叉区间
                newInterval = new Interval(
                        Math.min(intervals.get(i).start,newInterval.start),
                        Math.max(intervals.get(i).end,newInterval.end)
                );
                i++;
            }
            res.add(newInterval);
            while (i < intervals.size())        //重叠区间之后的也直接加入
                res.add(intervals.get(i++));
            return res;
        }
    }
  • 相关阅读:
    web安全性测试用例
    国内可用的网络时间服务器
    selenium需要的浏览器驱动程序下载
    杂齐杂八
    检查是否网络端口占用问题
    python入到到实战--第十章----文件
    python入到到实战--第九章
    python入到到实战--第八章
    python入到到实战--第七章
    python入到到实战--第六章
  • 原文地址:https://www.cnblogs.com/271934Liao/p/8308865.html
Copyright © 2011-2022 走看看