zoukankan      html  css  js  c++  java
  • [leetcode]Insert Interval

    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 : 传送门

    一般来说,只有这三种情况,交叉有着四种情况,其实大家还是看代码吧,代码比图还好看。。。

     1 public class Solution {
     2     public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
     3         List<Interval> res = new ArrayList<Interval>();
     4         for (Interval each : intervals) {
     5             if (each.end < newInterval.start)
     6                 res.add(each);
     7             else if (each.start > newInterval.end) {
     8                 res.add(newInterval);
     9                 newInterval = each;
    10             } else {
    11                 newInterval = new Interval(Math.min(each.start, newInterval.start), Math.max(each.end, newInterval.end));
    12             }
    13         }
    14         res.add(newInterval);
    15         return res;
    16     }
    17 }
  • 相关阅读:
    MySQL Connection排查未授权用户(unauthenticated user)
    Git常用命令
    abc
    更新显卡驱动
    财务模块 采购、接收、应付会计分录和功能认识
    ebs界面颜色改变
    获取科目的描述 创建科目
    EBS总账(GL)模块常用表
    收款 付款 到总帐
    PO收料到入库的分析
  • 原文地址:https://www.cnblogs.com/huntfor/p/3869076.html
Copyright © 2011-2022 走看看