day27(12.7)——leetcode面试经典150

56. 合并区间

56. 合并区间

题目:

题解:

java 复制代码
class Solution {
    public int[][] merge(int[][] intervals) {
        int len = intervals.length;
        //创建一个新数组
         List<int[]> list = new ArrayList<>();
        int x = 0; 
        //将数组进行排序
        Arrays.sort(intervals, Comparator.comparingInt(i->i[0]));
        int l = intervals[0][0];
        int r = intervals[0][1];
        for(int i=1;i<len;i++) {
            //如果r>=当前的数的开头,同时要确保当前数的结尾要>-当前r,就进行合并
            if(r>=intervals[i][0]&&r<=intervals[i][1]) {
                r=intervals[i][1];
            }
            //如果r<当前的数的开头,同时要确保当前数的结尾要>-当前r,直接将当前的l和r加入
            else if(r<intervals[i][0]&&r<=intervals[i][1]) {
                list.add(new int[]{l, r});
                l=intervals[i][0];
                r=intervals[i][1];
            }
        }
        list.add(new int[]{l, r});
        int[][] arr = list.toArray(int[][]::new);
        return arr;
    }
}
相关推荐
Byron__19 小时前
SpringBoot 核心面试知识点(自动配置/启动流程/注解/Starter)
spring boot·后端·面试
骄马之死19 小时前
ThreadLocal 核心原理
java·jvm·算法
周末也要写八哥19 小时前
经典算法题之删列造序(二)
数据结构·算法
Skr-Eric19 小时前
面试跨境服务相关知识
面试·职场和发展
猩球中的木子20 小时前
什么是DNS解析
前端·vue.js·面试
weixin_4684668520 小时前
最短路径与最小生成树算法区分实战指南
网络·算法·最小生成树·prim·并查集·最短路径·dijk
CQU_JIAKE20 小时前
5.28【A】
算法
Stzzfntty20 小时前
嵌软c八股刷题记录
c语言·开发语言·算法
墨白曦煜20 小时前
算法实战笔记:数组操作的底层逻辑与五大解题范式(一)
笔记·算法
t-think20 小时前
冒泡排序和qsort模拟实现
c语言·算法