From bf0ddd9d5e9c350e2b4d2ab2c8cbc9ddd402f920 Mon Sep 17 00:00:00 2001 From: Gatsby Date: Mon, 25 Jul 2022 14:25:22 +0800 Subject: [PATCH] =?UTF-8?q?452.=20=E7=94=A8=E6=9C=80=E5=B0=91=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E7=9A=84=E7=AE=AD=E5=BC=95=E7=88=86=E6=B0=94=E7=90=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2MinimumNumberOfArrowsToBurstBalloons.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/com/gatsby/_452MinimumNumberOfArrowsToBurstBalloons.java diff --git a/src/com/gatsby/_452MinimumNumberOfArrowsToBurstBalloons.java b/src/com/gatsby/_452MinimumNumberOfArrowsToBurstBalloons.java new file mode 100644 index 0000000..e374370 --- /dev/null +++ b/src/com/gatsby/_452MinimumNumberOfArrowsToBurstBalloons.java @@ -0,0 +1,34 @@ +package com.gatsby; + +import java.util.Arrays; + +/** + * @ClassName: _452MinimumNumberOfArrowsToBurstBalloons + * @Description: 452. 用最少数量的箭引爆气球 + * @author: Gatsby + * @date: 2022/7/25 14:10 + */ + +public class _452MinimumNumberOfArrowsToBurstBalloons { + public int findMinArrowShots(int[][] points) { + Arrays.sort(points, (int[] point1, int[] point2) -> { + // case [[-2147483646,-2147483645],[2147483646,2147483647]] + // 如果使用a-b的话会导致溢出 + return Integer.compare(point1[1], point2[1]); + }); + int res = 1; // 至少要有一只箭 + int maxCover = points[0][1]; // 以最右端为箭的最远端,判断下一个气球的最左边能不能被cover + + for (int[] point : points) { + if (point[0] <= maxCover) { + continue; + } else { + res++; + maxCover = point[1]; + } + } + return res; + } +} + +