day06 区间合并

116 阅读1分钟
  1. 区间合并

    • 多个区间有交集,合并成一个区间。
    • 具体思路:
      1. 按区间左端点排序
      2. 每次维护一个区间,处理另一个区间,则有三个情况:
        1. 完全包含,即当前处理区间的右端点大于等于该区间的右端点,那么我们不需要做任何操作,继续处理下一个区间。
        2. 部分包含,即当前处理区间的右端点小于该区间的右端点,但大于等于该区间的左端点,我们需要将当前处理区间的右端点更新为该区间的右端点,以便将其合并到一个更大的区间中。
        3. 不包含,即当前处理区间的右端点小于该区间的左端点,那么我们将当前处理区间提取出来,并将该区间设置为新的当前处理区间。

    例题: 给定几个区间[li,ri][l_i,r_i],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3]和[2,6]可以合并为一个区间[1,6]。

    输入格式:第一行为整数n,接下来的n行每行包含两个整数l,r。

    输出格式:共一行,包含一个整数,表示合并区间完成后的区间个数。

解决如下

code.png