# 56 合并区间

# 题目链接

# 难度:中等

#

#

#

#

#

#

#

#

#

#

#

#

#

#

# 代码:

排序 即将添加的元素和已添加元素之间的对比

/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
var merge = function(intervals) {
	if (intervals.length == 0) return []
	var res = []
	// 排序二维数组 递增的数组
	intervals.sort(function(a, b) {
		return a[0] - b[0]
	})
	// 初始化区间 从二维数组的第二个元素开始比较
	res.push(intervals[0])
	for (var i = 1; i < intervals.length; i++) {
		// 当前元素的左边界> 已添加元素的右边界 即为新的区间
		if (intervals[i][0] > res[res.length - 1][1]) {
			res.push(intervals[i])
		} else if (intervals[i][1] > res[res.length - 1][1]) {
			// 当前元素的右边界 大于已添加元素的右边界 它们重合 合并元素
			res[res.length - 1][1] = intervals[i][1] // 当前元素的最大值赋值给已添加元素的最大值
		}
	}
	return res
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 鼓励我一下:

觉得还不错的话,给我的项目点个star

# 点个Star支持我一下~