首页 > 其他 > 详细

Leetcode 56 Merge Intervals (Sort)

时间:2020-02-02 22:10:43      阅读:77      评论:0      收藏:0      [点我收藏+]

Leetcode 56

题目描述

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.

代码

Java
class Solution {
    public int[][] merge(int[][] intervals) {
        if ( intervals.length < 2 ) return intervals;
        Arrays.sort(intervals, new Comparator<int[]>(){
            public int compare(int[] a, int[] b){
                return a[0]-b[0];
            }
        });
        List<int[]> list = new ArrayList<>();
        int[] dummy = intervals[0];
        list.add(dummy);
        for(int[] interval : intervals){
            if (interval[0] <= dummy[1]){
                dummy[1] = Math.max(interval[1], dummy[1]);
            }
            else {
                dummy = interval;
                list.add(dummy);
            }
        }
        return list.toArray(new int[list.size()][]);
        
    }
}
Python3
class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
        ans = []
        for interval in sorted(intervals, key = lambda x:x[0]):
            if not ans or interval[0] > ans[-1][1]:
                ans.append(interval)
            else :
                ans[-1][1] = max(ans[-1][1], interval[1])
        return ans

Leetcode 56 Merge Intervals (Sort)

原文:https://www.cnblogs.com/willwuss/p/12253466.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!