您好,欢迎来到易妖游戏网。
搜索
您的当前位置:首页区间-01-合并区间

区间-01-合并区间

来源:易妖游戏网

1. 题目描述

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

示例 1

示例 2

输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

2. 思路

3. 代码

  • 代码1:

    public static int[][] merge(int[][] intervals) {
        if (intervals.length == 0 ||intervals ==null){
            return new int[0][0];
        }
    
        ArrayList<int[]> result = new ArrayList<>();
    	//排序
        Arrays.sort(intervals, Comparator.comparing(a->a[0]));
    
        int[] currentVal = intervals[0];
        for (int i = 1; i < intervals.length; i++) {
            int[] nextVal = intervals[i];
            //有重叠
            if (currentVal[1] >= nextVal[0]){
                currentVal[1] = Math.max(currentVal[1], nextVal[1]);
            }else {
                result.add(currentVal);
                currentVal = nextVal;//更新
            }
        }
        result.add(currentVal);
        
        return result.toArray(new int[result.size()][]);
    }
    

以上为个人学习分享,如有问题,欢迎指出:)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- vipyiyao.com 版权所有 湘ICP备2023022495号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务