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;
    }
}
相关推荐
甄心爱学习2 小时前
CSP认证 备考(python)
数据结构·python·算法·动态规划
kyle~2 小时前
排序---常用排序算法汇总
数据结构·算法·排序算法
AndrewHZ3 小时前
【遥感图像入门】DEM数据处理核心算法与Python实操指南
图像处理·python·算法·dem·高程数据·遥感图像·差值算法
CoderYanger3 小时前
动态规划算法-子序列问题(数组中不连续的一段):28.摆动序列
java·算法·leetcode·动态规划·1024程序员节
有时间要学习3 小时前
面试150——第二周
数据结构·算法·leetcode
liu****4 小时前
3.链表讲解
c语言·开发语言·数据结构·算法·链表
第二只羽毛4 小时前
C++ 高性能编程要点
大数据·开发语言·c++·算法
CQ_YM4 小时前
数据结构之栈
数据结构·算法·