代码随想录——合并区间(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()][]);
    }
}
相关推荐
我是苏苏1 小时前
C#高级:程序查询写法性能优化提升策略(附带Gzip算法示例)
开发语言·算法·c#
木木子99991 小时前
业务架构、应用架构、数据架构、技术架构
java·开发语言·架构
sali-tec2 小时前
C# 基于halcon的视觉工作流-章56-彩图转云图
人工智能·算法·计算机视觉·c#
qq_5470261793 小时前
Flowable 工作流引擎
java·服务器·前端
鼓掌MVP4 小时前
Java框架的发展历程体现了软件工程思想的持续进化
java·spring·架构
编程爱好者熊浪4 小时前
两次连接池泄露的BUG
java·数据库
lllsure4 小时前
【Spring Cloud】Spring Cloud Config
java·spring·spring cloud
鬼火儿5 小时前
SpringBoot】Spring Boot 项目的打包配置
java·后端
NON-JUDGMENTAL5 小时前
Tomcat 新手避坑指南:环境配置 + 启动问题 + 乱码解决全流程
java·tomcat
yoke菜籽5 小时前
面试150——字典树
面试·职场和发展