Minimum Number of Arrows to Burst Balloons

Problem page:https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons

Solution

def findMinArrowShots(self, points: List[List[int]]) -> int:
        points.sort(key= lambda x : x[0])
        res, end = 1, points[0][1]

        for balloon in points[1:]:
            if balloon[0] > end:
                res += 1
                end = balloon[1]
            else:
                end = min(end, balloon[1])
        return res

Complexity

  • time: O(n)
  • space: O(1)