-
区间合并
- 多个区间有交集,合并成一个区间。
- 具体思路:
- 按区间左端点排序
- 每次维护一个区间,处理另一个区间,则有三个情况:
- 完全包含,即当前处理区间的右端点大于等于该区间的右端点,那么我们不需要做任何操作,继续处理下一个区间。
- 部分包含,即当前处理区间的右端点小于该区间的右端点,但大于等于该区间的左端点,我们需要将当前处理区间的右端点更新为该区间的右端点,以便将其合并到一个更大的区间中。
- 不包含,即当前处理区间的右端点小于该区间的左端点,那么我们将当前处理区间提取出来,并将该区间设置为新的当前处理区间。
例题: 给定几个区间,要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3]和[2,6]可以合并为一个区间[1,6]。
输入格式:第一行为整数n,接下来的n行每行包含两个整数l,r。
输出格式:共一行,包含一个整数,表示合并区间完成后的区间个数。
解决如下