算法

60 阅读1分钟

例题分析一

LeetCode 第 56 题:给出一个区间的集合,请合并所有重叠的区间。

示例 1

输入: [[1,3], [2,6], [8,10], [15,18]]

输出: [[1,6], [8,10], [15,18]]

解释: 区间 [1,3] 和 [2,6] 重叠,将它们合并为 [1,6]。

示例 2

输入: [[1,4], [4,5]]

输出: [[1,5]]

解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

解题思路:贪婪法

在分析一些比较复杂的问题时,可以从比较简单的情况着手来寻找突破口,先来看看两个区间会出现多少种情况。

假设有区间 a 和 b,区间 a 的起始时间要早于 b 的起始时间。那么它们之间有如下 3 种可能会出现的情况。