LeetCode56:合并区间

LeetCode56:合并区间_第1张图片

class Solution {
    public int[][] merge(int[][] intervals) {
        //1.按照区间的起始位置排序
        Arrays.sort(intervals,(v1,v2)->v1[0]-v2[0]);
        //2.创建一个结果数组
        int[][] res = new int[intervals.length][2];
        int idx = -1;
        for(int[] interval : intervals){
            if(idx==-1 || interval[0]>res[idx][1]){
                //如果结果数组为空或者当前区间的起止位置>结果数组的截至位置,则不合并,直接将当前数组计入结果数组
                res[++idx]=interval;
            }
            //将当前区间合并到结果数组的最后区间
            else{
                res[idx][1]=Math.max(interval[1],res[idx][1]);
            }
        }
        return Arrays.copyOf(res,idx+1);
    }
}

 

你可能感兴趣的:(LeetCode)