LeetCode 56. 合并区间

题目描述

56. 合并区间

image-20230305140610231

思路分析

🔄 按区间起始位置升序排序

image-20250507212459779

image-20250507213400890

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
func merge(intervals [][]int) [][]int {
	if len(intervals) <= 1 {
		return intervals
	}

	// 按照区间的起始值进行排序
	sort.Slice(intervals, func(i, j int) bool {
		return intervals[i][0] < intervals[j][0]
	})

	var res [][]int
	res = append(res, intervals[0])

	for _, cur := range intervals[1:] {
		pre := res[len(res)-1]
		if cur[0] > pre[1] {
			// 当前区间不重叠,直接添加
			res = append(res, cur)
		} else {
			// 当前区间重叠,合并
			pre[1] = max(pre[1], cur[1])
		}
	}

	return res
}

➡️ 点击查看 Java 题解

1
write your code here

相似题目

image-20250507212915137

本文作者:
本文链接: https://hgnulb.github.io/blog/2025/35203621
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!