无重叠区间


Submit solution

Points: 200
Time limit: 1.0s
Memory limit: 10M

Author:
Problem type
Allowed languages
C, C++

无重叠区间(leetcode 435)

给定一个由若干个区间组成的数组 intervals,每个区间 intervals[i] = [starti, endi],请你计算:最少需要移除多少个区间,使得剩下的区间互不重叠。

第一行输入一个整数n,表示数组有多少个元素
从第二行开始依次输入n对整数,每一对整数包含2个数字,表示每一个区间的开始和结束
输出一个整数,表示需要移除的区间的最小数量。

例 1:

输入:

4
1 2
2 3
3 4
1 3

输出:

1
解释:

移除区间 [1,3],剩下的区间 [1,2],[2,3],[3,4] 互不重叠。

例 2:

输入:

3
1 2
1 2
1 2

输出:

2
解释:

我们最多只能保留一个 [1,2] 区间,其余两个必须删除。

例 3:

输入:

2
1 2
2 3

输出:

0
解释:

两个区间刚好接壤,不重叠,无需移除。

提示:

\(1 \le intervals.length \le 10^5\)
\(intervals[i].length == 2\)
\(-5 \times 10^4 \le start_i < end_i \le 5 \times 10^4\)


Comments

There are no comments at the moment.