首页 > 其他分享 >452. 用最少数量的箭引爆气球(leetcode)

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

时间:2024-08-29 14:52:42浏览次数:9  
标签:重叠 int 452 气球 points leetcode

https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/

思路是排序,方便计算气球重叠,难点是在重叠时更新右边界,更新为 两个区间的最右重合点,因为这个点是最少一支箭就可以射掉两个气球的最右点,再去下个循环判断区间重合

class Solution {
    public int findMinArrowShots(int[][] points) {
        
        // 思路:按照气球起始位置进行排序,让气球相邻,方便计算出重叠的气球数
        Arrays.sort(points,(a,b)-> Integer.compare(a[0], b[0]));
        
        int res=1; // 题给出points.length>=1,因此必须要有一支箭

        for(int i=1;i<points.length;i++)
        {
            if(points[i-1][1] < points[i][0])res++; //气球不重叠,此时必须要一支箭
            else
            {
                // 气球重叠,直接跳过重叠的气球
                // 难点:把重叠的气球右边界更新,更新为最小的一支箭就可以射掉的最右边界
                // 即两个区间的最右重合点
                points[i][1]=Math.min(points[i-1][1],points[i][1]);
            }
        }
        return res;

    }
}

 

标签:重叠,int,452,气球,points,leetcode
From: https://www.cnblogs.com/lxl-233/p/18386675

相关文章

  • LeetCode-Python-1539. 第 k 个缺失的正整数(二分)
    给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。请你找到这个数组里第 k 个缺失的正整数。示例1:输入:arr=[2,3,4,7,11],k=5输出:9解释:缺失的正整数包括[1,5,6,8,9,10,12,13,...]。第5个缺失的正整数为9。示例2:输入:arr=[1,2,3,4],k=2......
  • 一起学习LeetCode热题100道(61/100)
    61.分割回文串(学习)给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例1:输入:s=“aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例2:输入:s=“a”输出:[[“a”]]提示:1<=s.length<=16s仅由小写英文字母......
  • leetcode215. 数组中的第K个最大元素,小根堆/快排思想
    leetcode215.数组中的第K个最大元素给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度为O(n)的算法解决此问题。示例1:输入:[3,2,1,5,6,4],k=2......
  • LeetCode 面试经典 150 题回顾
    目录一、数组/字符串1.合并两个有序数组 (简单)2.移除元素 (简单)3.删除有序数组中的重复项 (简单)4.删除有序数组中的重复项II(中等)5.多数元素(简单)6.轮转数组 (中等)7.买卖股票的最佳时机(简单)8.买卖股票的最佳时机II (中等)9.跳跃游戏(中等)10.跳跃游戏II(中等)11.H指......
  • LeetCode - 1 两数之和
    题目来源1.两数之和-力扣(LeetCode)题目描述给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案......
  • 单调队列--滑动窗口最大值(leetcode23)
    目录一、单调队列介绍二、题目应用1.题目描述2.解题碎碎念3.代码示例三、扩展1.与优先队列区别2.单调队列其他题目一、单调队列介绍单调队列是一种特殊的队列数据结构,它能够在常数时间内找到队列中的最值。单调队列可以用来解决一些与最值相关的问题,例如滑动窗口最......
  • 56. 合并区间【 力扣(LeetCode) 】
    一、题目描述  以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。二、测试用例示例1:输入:intervals=[[1,3],[2,6],[8,10],[15,18]]输......
  • 【Hot100】LeetCode—39. 组合总和
    目录1-思路2-实现⭐39.组合总和——题解思路3-ACM实现题目连接:39.组合总和1-思路注意如果借助startIndex实现,理解startIndex的含义在本题目中,由于同一个元素可以重复选取,因此startIndex在传递的过程中,不需要进行+1操作,传递的值为i2-实现⭐39......
  • 【Hot100】LeetCode—17. 电话号码的字母组合
    目录1-思路String数组(哈希表)+回溯2-实现⭐17.电话号码的字母组合——题解思路3-ACM实现题目连接:17.电话号码的字母组合1-思路String数组(哈希表)+回溯思路通过String数组实现哈希表,存储0-9的哈希表映射回溯三部曲①参数及返回值numToStr:Stri......
  • 【Leetcode_Hot100】普通数组
    普通数组53.最大子数组和56.合并区间189.轮转数组238.除自身以外数组的乘积41.缺失的第一个正数53.最大子数组和方法一:暴力解依次遍历数组中的每个子数组,进而判断res的最大值超时classSolution{publicintmaxSubArray(int[]nums){intres=0;......