代码随想录——合并区间(Leecode LCR74)

题目链接

贪心 + 排序

java 复制代码
class Solution {
    public int[][] merge(int[][] intervals) {
         ArrayList<int[]> res = new ArrayList<>();
         // 先将数组按照左区间排序
         Arrays.sort(intervals, new Comparator<int[]>() {
    		public int compare(int[] intervals1, int[] intervals2) {
        		long diff = (long)intervals1[0] - (long)intervals2[0];
        		if (diff == 0) return 0;
        		return diff > 0 ? 1 : -1;
    		}
		});
        for(int i = 1; i < intervals.length; i++){
        	// 如果intervals[i][0] <= intervals[i - 1][1]则存在区间重叠,修改intervals[i]的左右区间
            if(intervals[i][0] <= intervals[i - 1][1]){
                intervals[i][0] = intervals[i - 1][0];
                intervals[i][1] = Math.max(intervals[i - 1][1], intervals[i][1]);
            }else{
            	// 不存在区间重叠,则直接添加到结果中
                res.add(intervals[i - 1]);
            }
        }
        // 将最后一个区间添加到结果
        res.add(intervals[intervals.length - 1]);
        // 用于将 ArrayList<ArrayList<Integer>> 转换为 int[][]
        return res.toArray(new int[res.size()][]);
    }
}
相关推荐
cike_y4 分钟前
JSP内置对象及作用域&双亲委派机制
java·前端·网络安全·jsp·安全开发
也许是_7 分钟前
大模型应用技术之 Spring AI 2.0 变更说明
java·人工智能·spring
Hcoco_me11 分钟前
RTMPose_JSON相关解读
算法·数据挖掘·json·聚类
xunyan623421 分钟前
面向对象(下)-内部类的分类
java·学习
高洁0122 分钟前
DNN案例一步步构建深层神经网络(二)
人工智能·python·深度学习·算法·机器学习
巴拉巴拉~~29 分钟前
KMP 算法通用进度条组件:KmpProgressWidget 多维度 + 匹配进度联动 + 平滑动画
java·服务器·前端
aini_lovee30 分钟前
改进遗传算法求解VRP问题时的局部搜索能力
开发语言·算法·matlab
合方圆~小文1 小时前
4G定焦球机摄像头综合介绍产品指南
数据结构·数据库·人工智能
Yeniden1 小时前
Deepeek用大白话讲解 --> 迭代器模式(企业级场景1,多种遍历方式2,隐藏集合结构3,Java集合框架4)
java·开发语言·迭代器模式
老蒋新思维1 小时前
反脆弱性设计:创始人IP与AI智能体如何构建愈动荡愈强大的知识商业|创客匠人
人工智能·网络协议·tcp/ip·算法·机器学习·创始人ip·创客匠人