美文网首页
合并区间【LeetCode】

合并区间【LeetCode】

作者: 朱哥 | 来源:发表于2021-04-07 18:22 被阅读0次

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。

import java.util.*;

class Solution {
    public int[][] merge(int[][] intervals) {
        if (intervals == null) {
            return intervals;
        }
        // 对 intervals 的第一个值进行排序
        Arrays.sort(intervals, Comparator.comparingInt(ints -> ints[0]));

        ArrayList<int[]> temp = new ArrayList<>();
        int[] item = intervals[0];
        for (int i = 1; i < intervals.length; i++) {
            if (item[1] >= intervals[i][0]) {
                item[1] = Math.max(item[1], intervals[i][1]);
            } else {
                temp.add(item);
                item = intervals[i];
            }
        }
        temp.add(item);
        return temp.toArray(new int[temp.size()][2]);
    }
}

相关文章

网友评论

      本文标题:合并区间【LeetCode】

      本文链接:https://www.haomeiwen.com/subject/pzfekltx.html