leetcode 452. 用最少数量的箭引爆气球

暂无评定 leetcode 贪心

题目描述

墙面上贴着一些球形气球。每个气球在水平方向上可以用一个闭区间表示。

对于每个气球,记它在水平方向上的区间为 [left, right]。其中 left 表示左端点,right 表示右端点,并且 left 严格小于 right。你不知道气球的具体纵坐标,但这不会影响判断。

你可以在任意横坐标 x 处竖直射出一支箭。若某个气球的 left 不大于 x,并且 x 不大于 right,则该气球会被引爆。

一支箭射出后会一直向前飞行,因此同一个位置射出的这一支箭,可以引爆所有覆盖该坐标的气球。

现在给定所有气球的区间,请你计算:引爆全部气球所需要的最少箭数。

输入格式

第一行输入一个整数 n,表示气球数量。

接下来 n 行,每行输入两个整数 leftright,表示一个气球对应的区间 [left, right]

输出格式

输出一个整数,表示引爆所有气球所需的最少箭数。

数据范围

说明

  • 如果两个区间有公共点,那么它们可以被同一支箭引爆。
  • 端点也算在区间内,因此仅在端点处相交的两个气球,也可以被同一支箭引爆。

数据范围

$1 <= n <= 10^5$
$-2^{31} <= left < right <= 2^{31} - 1$

样例输入 1

4
10 16
2 8
1 6
7 12

样例输出 1

2

样例输入 2

4
1 2
3 4
5 6
7 8

样例输出 2

4

样例输入 3

4
1 2
2 3
3 4
4 5

样例输出 3

2
时间限制: 1000ms
内存限制: 256MB
通过率: 0.0%
提交数: 0

设置

导航栏小工具

时钟
显示实时时钟(默认组件)
📝
代码粘贴板
快速创建和分享代码片段