LeetCode452用最少数量的箭引爆气球

题目描述

  有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被 引爆 。可以射出的弓箭的数量 没有限制 。 弓箭一旦被射出之后,可以无限地前进。给你一个数组 points ,返回引爆所有气球所必须射出的 最小 弓箭数 。

解析

  对左边界进行排序,每次区间都找到最小的右边界,不断循环即可,题解按照右边界排序能够少一步找最小值的操作,实际时间复杂度是一样的。

public int findMinArrowShots(int[][] points) {
        Arrays.sort(points, Comparator.comparingInt(a -> a[0]));

        int maxLeft = points[0][1];
        int res = 1;

        for(int i = 1; i < points.length; i++) {
            if(points[i][0] > maxLeft) {
                res++;
                maxLeft = points[i][1];
            }
            else {
                maxLeft = Math.min(maxLeft, points[i][1]);
            }
        }

        return res;
    }

在这里插入图片描述

相关推荐

  1. 452. 数量引爆气球

    2024-06-15 11:18:04       40 阅读
  2. 452. 数量引爆气球

    2024-06-15 11:18:04       21 阅读
  3. LeetCode-452数量引爆气球(贪心)

    2024-06-15 11:18:04       61 阅读
  4. 【贪心算法】452. 数量引爆气球

    2024-06-15 11:18:04       44 阅读
  5. 【C++】每日一题 452 数量引爆气球

    2024-06-15 11:18:04       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-15 11:18:04       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-15 11:18:04       97 阅读
  3. 在Django里面运行非项目文件

    2024-06-15 11:18:04       78 阅读
  4. Python语言-面向对象

    2024-06-15 11:18:04       88 阅读

热门阅读

  1. GIS之arcgis系列09:arcpy实现克里金差值

    2024-06-15 11:18:04       34 阅读
  2. lua中的lfs库介绍

    2024-06-15 11:18:04       29 阅读
  3. Ubuntu SAMBA 服务器部署与调优

    2024-06-15 11:18:04       26 阅读
  4. HTTP文件下载

    2024-06-15 11:18:04       34 阅读
  5. 前端开发之HTTP3

    2024-06-15 11:18:04       30 阅读
  6. 网络安全攻防演练:提升应急响应能力

    2024-06-15 11:18:04       27 阅读
  7. linux yum 安装mysql

    2024-06-15 11:18:04       24 阅读