zoukankan      html  css  js  c++  java
  • 56. Merge Intervals

    Given a collection of intervals, merge all overlapping intervals.

    Example 1:

    Input: [[1,3],[2,6],[8,10],[15,18]]
    Output: [[1,6],[8,10],[15,18]]
    Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
    

    Example 2:

    Input: [[1,4],[4,5]]
    Output: [[1,5]]
    Explanation: Intervals [1,4] and [4,5] are considered overlapping.

    NOTE: input types have been changed on April 15, 2019. Please reset to default code definition to get new method signature.

     1 class Solution {
     2     private class IntervalComparator implements Comparator<int[]> {
     3         public int compare(int []a, int []b) {
     4             return a[0] < b[0] ? -1 : a[0] == b[0] ? 0 : 1;
     5         }
     6     }
     7     public int[][] merge(int[][] intervals) {
     8         int m = intervals.length;
     9         Collections.sort(Arrays.asList(intervals), new IntervalComparator());
    10         LinkedList<int[]> merged = new LinkedList<>();
    11         for (int[] interval : intervals) {
    12             if (merged.isEmpty() || merged.getLast()[1] < interval[0]) {
    13                 merged.add(interval);
    14             } else {
    15                 merged.getLast()[1] = Math.max(merged.getLast()[1], interval[1]);
    16             }
    17         }
    18         return merged.toArray(new int[merged.size()][]);
    19         
    20     }
    21 }
  • 相关阅读:
    操作系统复习
    Google hack语法
    c++的set重载运算符
    华为笔试题
    Flume+Kafka整合
    kafka相关知识点总结
    kafka中生产者和消费者API
    Kafka集群环境搭建
    Storm消息容错机制(ack-fail机制)
    Storm通信机制(了解)
  • 原文地址:https://www.cnblogs.com/hyxsolitude/p/12324042.html
Copyright © 2011-2022 走看看