zoukankan      html  css  js  c++  java
  • LeetCode--056--合并区间(java)

    给出一个区间的集合,请合并所有重叠的区间。

    示例 1:

    输入: [[1,3],[2,6],[8,10],[15,18]]
    输出: [[1,6],[8,10],[15,18]]
    解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
    

    示例 2:

    输入: [[1,4],[4,5]]
    输出: [[1,5]]
    解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。
    TIME:O(N)
    SPACE:O(N)
     1 class Solution {
     2     public int[][] merge(int[][] intervals) {
     3         // 数据长度未达到合并操作要求
     4         if (intervals.length < 2)
     5             return intervals;
     6         //按二维数组第一位排序
     7         Arrays.sort(intervals, new Comparator<int[]>() {
     8             @Override
     9             public int compare(int[] o1, int[] o2) {
    10                 return o1[0] - o2[0];
    11             }
    12         });
    13         List<int[]> list = new ArrayList<>();
    14         //合并区间,若区间不能合则前者加入list中
    15         for (int i = 0; i < intervals.length - 1; i++) {
    16             if (intervals[i + 1][0] <= intervals[i][1]) {
    17                 intervals[i + 1][0] = intervals[i][0];
    18                 intervals[i + 1][1] = Math.max(intervals[i + 1][1], intervals[i][1]);
    19             } else {
    20                 list.add(intervals[i]);
    21             }
    22         }
    23         //最后的区间加入list中
    24         list.add(intervals[intervals.length - 1]);
    25         int[][] res = new int[list.size()][2];
    26         for (int i = 0; i < list.size(); i++) {
    27             res[i][0] = list.get(i)[0];
    28             res[i][1] = list.get(i)[1];
    29         }
    30         return res;
    31     }
    32 }

    2019-05-17 09:55:30

  • 相关阅读:
    MT【280】最小值函数
    MT【279】分母为根式的两个函数
    MT【278】二次齐次化
    selenium之 chromedriver与chrome版本映射表
    django使用数据库锁
    mysql添加行内锁
    Django 通过url 获取url名称
    Django Q的其他用法
    Django 的 QueryDict
    Django 获取带参数的url
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/10879749.html
Copyright © 2011-2022 走看看