452. Minimum Number of Arrows to Burst Balloons¶
Edited by Charles
Medium · Python · Greedy
Problem
Read the original problem on LeetCode.
The official page contains the problem statement, examples, and constraints.
Explanation, examples & other approaches
Core idea
Unlike 135. Candy or 406. Queue Reconstruction by Height, there is no need to consider two dimensions in sorting. As the photo below, reorder points by the end so that once there is a point with the start on the right of the current recorded end, one more arrow is needed.
Original study notes follow, including intermediate snippets and earlier attempts.
Note:
- Unlike 135. Candy or 406. Queue Reconstruction by Height, there is no need to consider two dimensions in sorting.
- As the photo below, reorder points by the end so that once there is a point with the start on the right of the current recorded end, one more arrow is needed.
-
Since the list is reordered by the ends, intervals/points that overlap with the current interval/point must include the current end.

Study record
| Field | Value |
|---|---|
| Attempts | 1 |
| Mastery | ❚ |
| The Latest Attempt | January 29, 2026 |
Python solution¶
class Solution:
def findMinArrowShots(self, points: List[List[int]]) -> int:
n = len(points)
points.sort(key = lambda x: x[1])
arrows = 1
end = points[0][1]
for point in points:
if point[0] > end:
arrows += 1
end = point[1]
return arrows