问题2441--将区间分为最少组数

2441: 将区间分为最少组数

[命题人 : ]
时间限制 : 2 sec  内存限制 : 128 MB

提交

题目描述

给你一个二维整数数组 intervals ,其中 intervals[i] = [lefti, righti] 表示 闭 区间 [lefti, righti] 。
你需要将 intervals 划分为一个或者多个区间 组 ,每个区间  属于一个组,且同一个组中任意两个区间 不相交 。
请你输出 最少 需要划分成多少个组。
如果两个区间覆盖的范围有重叠(即至少有一个公共数字),那么我们称这两个区间是 相交 的。比方说区间 [1, 5] 和 [5, 8] 相交。

输入

第一行一个整数n,表示二维整数数组 intervals 的行数
接下来第i行(i=1,2...,n)两个整数 [lefti, righti] 表示 闭 区间 [lefti, righti
  • 1 <= n <= 105
  • intervals[i].length == 2
  • 1 <= lefti<= righti<= 106

输出

请输出 最少 需要划分成多少个组。

样例输入 Copy

5
5 10
6 8
1 5
2 3
1 10

样例输出 Copy

3

提示

不要关心时间限制,只要时间复杂度计算出不超过1e8即可通过本题,时间限制给2s是为了不卡输入输出流时间过长


样例解释:
我们可以将区间划分为如下的区间组:
- 第 1 组:[1, 5] ,[6, 8] 。
 - 第 2 组:[2, 3] ,[5, 10] 。
 - 第 3 组:[1, 10] 。
 可以证明无法将区间划分为少于 3 个组。


样例输入2:
4
1 3
5 6
8 10
11 13
样例输出2:
1