ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LeetCode 452. Minimum Number of Arrows to Burst Balloons(用最少数量的箭引爆气球)

2020-03-16 14:37:33  阅读:291  来源: 互联网

标签:count end Burst int 452 Arrows points return 气球


题目描述:气球在一个水平数轴上摆放,可以重叠,飞镖垂直投向坐标轴,使得路径上的气球都被刺破。求解最小的投飞镖次数使所有气球都被刺破。

  1. 如果最多有 n 个不重叠的区间,那么就至少需要 n 个箭头穿透所有区间
  2. 箭头如果碰到气球的边界气球也会爆炸,所以说相当于区间的边界触碰也算重叠:
  public int findMinArrowShots(int[][] points) {
        if(points.length == 0) return 0;
        //按照end升序排序
        Arrays.sort(points, new Comparator<int[]>() {
            public int compare(int[] a, int[] b) {
                return a[1] - b[1];
            }
        });

        //最大不重叠区间个数
        int count = 1;
        int end = points[0][1];
        for(int i = 1; i < points.length; i ++) {
            //端点相交,算重合区间
            if(points[i][0] > end) {
                count ++;
                end = points[i][1];
            }
        }

        return count;
    }

图片摘自题解:
在这里插入图片描述
在这里插入图片描述

标签:count,end,Burst,int,452,Arrows,points,return,气球
来源: https://blog.csdn.net/gx17864373822/article/details/104898616

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有