码迷,mamicode.com
首页 > 其他好文 > 详细

[LC] 56. Merge Intervals

时间:2019-11-21 13:53:19      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:last   get   als   lis   else   star   code   span   over   

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.

 

class Solution {
    public int[][] merge(int[][] intervals) {
        List<int[]> res = new ArrayList<>();
        if (intervals.length == 0) {
            return new int[][] {};
        }
        Arrays.sort(intervals, (a, b) -> (a[0] - b[0]));
        int start = intervals[0][0];
        int end = intervals[0][1];
        for (int[] interval: intervals) {
            if (interval[0] <= end) {
                end = Math.max(end, interval[1]);
            } else {
                res.add(new int[]{start, end});
                start = interval[0];
                end = interval[1];
            }
        }
        // need to add back the last tuple
        res.add(new int[]{start, end});
        return res.toArray(new int[][] {});
    }
}

 

[LC] 56. Merge Intervals

标签:last   get   als   lis   else   star   code   span   over   

原文地址:https://www.cnblogs.com/xuanlu/p/11904893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!