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

     1  class intervalComparator implements Comparator<Interval>{
     2     @Override
     3     public int compare(Interval o1, Interval o2) {
     4         return o1.start-o2.start;
     5     }
     6 }
     7 public class Solution {
     8     public List<Interval> merge(List<Interval> intervals) {
     9         List<Interval> result = new ArrayList<Interval>();
    10         if (intervals.size() == 0) {
    11             return result;
    12         }
    13         Collections.sort(intervals, new intervalComparator());
    14         Interval first = intervals.get(0);
    15         Interval next;
    16         for (int i = 1; i <intervals.size() ; i++) {
    17             next = intervals.get(i);
    18             if (first.end < next.start) {
    19                 result.add(first);
    20                 first = next;
    21             } else {
    22                 if (first.end < next.end) {
    23                     first.end = next.end;
    24                 } 
    25             }
    26         }
    27         result.add(first);
    28         return result;
    29     }
    30 
    31     public List<Interval> insert(List<Interval> intervals, Interval newInterval) {
    32         List<Interval> result = new ArrayList<Interval>(intervals);
    33         result.add(newInterval);
    34         return merge(result);
    35     }
    36 }
  • 相关阅读:
    Zabbix的SNMPTrap监控配置
    Delphi 7下最小化到系统托盘
    解决来QQ消息后歌曲音量降低问题
    转载——用Mixer API函数调节控制面板的音频设置
    git branch -D 大写的D 删除分支
    gitlab+TortoiseGit中使用SSH
    SQL 高级查询
    正则表达式校验文件路径
    显示所选择文件的路径地址
    Type InvokeMember()用法简介
  • 原文地址:https://www.cnblogs.com/birdhack/p/4263356.html
Copyright © 2011-2022 走看看