力扣hot100 合并区间 排序 贪心

Problem: 56. 合并区间

复杂度

时间复杂度: O ( n log ⁡ n ) O(n\log{n}) O(nlogn)

空间复杂度: O ( n ) O(n) O(n)

Code

Java 复制代码
class Solution {
	public int[][] merge(int[][] intervals)
	{
		Arrays.sort(intervals, (int[] a, int[] b) -> {
			return a[0] - b[0];
		});// 按照数组的第一个元素升序排序
		int n = intervals.length;
		int[][] res = new int[n][2];// 记录每个数组的左右边界
		int idx = -1;
		for (int[] a : intervals)
		{
//			第一个数组       或  当前数组不能融入 当前已有的数组 (左边界 > 已有数组的右边界)
			if (idx == -1 || a[0] > res[idx][1])
				res[++idx] = a;// 把当前数组 加入 结果
			else
//				可以融入的情况,右边界取较大值
				res[idx][1] = Math.max(a[1], res[idx][1]);
		}
		//res数组经过合并区间,长度 <= n
		return Arrays.copyOf(res, idx + 1);
	}
}
相关推荐
wearegogog12310 分钟前
基于遗传算法的阵列天线方向图优化MATLAB实现
算法·matlab
Controller-Inversion19 分钟前
312. 戳气球
算法
图码20 分钟前
最大子数组和问题:从暴力到Kadane算法的优雅蜕变
数据结构·算法·动态规划·柔性数组
Raink老师23 分钟前
用100道题拿下你的算法面试(链表篇-5):删除链表的倒数第 N 个节点
算法·链表·面试
qq_2965532726 分钟前
[特殊字符] 数组中的递增三元组:O(n) 时间高效查找,面试必考!
数据结构·算法·面试·职场和发展·组合模式·柔性数组
逻辑驱动的ken31 分钟前
Java高频面试考点场景题26
java·开发语言·面试·职场和发展·求职招聘
今儿敲了吗32 分钟前
链表篇(一)——合并两个有序链表
数据结构·笔记·算法·链表
fie888932 分钟前
基于BBO算法的网络负载均衡优化(MATLAB实现)
网络·算法·负载均衡
y = xⁿ36 分钟前
20天速通LeetCodeday11:二叉树进阶
数据结构·算法
400分40 分钟前
langchain踩坑调用大模型记录-搭建人工智能机器人
算法