day29(12.9)——leetcode面试经典150

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

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

这几题感觉都大差不差,写的很顺利,心情好了,继续备考六级

题目:

题解:

java 复制代码
class Solution {
    public int findMinArrowShots(int[][] points) {
        //将二维数组进行排序
        Arrays.sort(points, Comparator.comparingInt(p->p[0]));
        //创建一个新的集合
        List<int[]> list = new ArrayList<>();
        //获取二维数组的第一个元素的xstart,xend
        int x1 = points[0][0];
        int x2 = points[0][1];
        //遍历数组中的所有元素
        for(int i=1;i<points.length;i++) {
            //如果当前元素的xstart要>=x1,同时xstart要<=x2,更新x1
            if(points[i][0]>=x1&&points[i][0]<=x2) {
                x1 = points[i][0];
                //如果当前元素的xend要<x2,更新x2
                if(points[i][1]<x2) {
                    x2 = points[i][1];
                }
            }
            //如果当前元素xstart要>x1
            else if(points[i][0]>x1) {
                //将当前的x1,x2加入集合中
                list.add(new int[]{x1,x2});
                //进行更新x1,x2
                x1 = points[i][0];
                x2 = points[i][1];
            }
        }
        //将最后得到的x1,x2加入集合中
        list.add(new int[]{x1,x2});
        //进行返回集合的个数
        return list.size();
    }
}
相关推荐
小迷糊的学习记录2 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
程序员敲代码吗2 小时前
面试中sessionStorage问题引发深度探讨
面试·职场和发展
大闲在人2 小时前
8. 供应链与制造过程术语:产能
算法·制造·供应链管理·智能制造·工业工程
一只小小的芙厨2 小时前
寒假集训笔记·以点为对象的树形DP
c++·算法
历程里程碑2 小时前
普通数组----合并区间
java·数据结构·python·算法·leetcode·职场和发展·tornado
执风挽^2 小时前
Python基础编程题2
开发语言·python·算法·visual studio code
Z9fish2 小时前
sse哈工大C语言编程练习20
c语言·开发语言·算法
晓13133 小时前
第六章 【C语言篇:结构体&位运算】 结构体、位运算全面解析
c语言·算法
iAkuya3 小时前
(leetcode)力扣100 61分割回文串(回溯,动归)
算法·leetcode·职场和发展
梵刹古音3 小时前
【C语言】 指针与数据结构操作
c语言·数据结构·算法