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 }
  • 相关阅读:
    iOS适配 旧项目工程在iOS9下不能正常显示
    字典的操作
    均摊时间复杂度
    C++基础
    机器学习入门学习线路
    C\C++对文件的读写操作
    python 函数基础
    关于string的练习题目
    C++之STL之string
    C++STL库之set的用法
  • 原文地址:https://www.cnblogs.com/hyxsolitude/p/12324042.html
Copyright © 2011-2022 走看看