代码随想录——合并区间(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 分钟前
macOS 查看与安装 Java JDK 全面指南(2026年版)
java·开发语言·macos
西门吹雪分身1 分钟前
SpringCloudGateway过滤器之RequestRateLimiterGatewayFilterFactory
java·redis·spring cloud
hans汉斯2 分钟前
《数据挖掘》期刊推介&征稿指南
图像处理·人工智能·算法·yolo·数据挖掘·超分辨率重建·汉斯出版社
敲代码的哈吉蜂2 分钟前
Tomcat的功能介绍
java·tomcat
炽烈小老头4 分钟前
【每天学习一点算法 2026/02/24】矩阵置零
学习·算法·矩阵
独自破碎E5 分钟前
BISHI75 阶幂
android·java·开发语言
红中️5 分钟前
Tomcat
java·tomcat
田里的水稻6 分钟前
OE_ubuntu24.04安装ros2
人工智能·算法·数学建模·机器人·自动驾驶
Charlie_lll7 分钟前
力扣解题-无重复字符的最长子串
后端·算法·leetcode
爱学习的小可爱卢9 分钟前
JavaSE基础-Java异常体系:Bug定位终极指南
java·bug·javase