博主介绍:✌目前全网粉丝2W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。
涵盖技术内容:Java后端、算法、分布式微服务、中间件、前端、运维、ROS等。
博主所有博客文件目录索引:博客目录索引(持续更新)
视频平台:b站-Coder长路
题目链接:LeetCode、452. 用最少数量的箭引爆气球
分类:贪心/区间问题
思路:抓住本质区间问题【找到有多少个连续区间】,接着基本都是相同模板扩展处理。
复杂度分析:时间复杂度O(n.logn);空间复杂度O(n)
class Solution {
//本质:找到有多少个连续区间
public int findMinArrowShots(int[][] points) {
//对区间的右节点排序
Arrays.sort(points, (o1, o2)->{
//由于区间范围是从负数开始的,所以这里统一使用<判断
return o1[1] < o2[1] ? -1 : 1;
});
int ans = 1;
int right = points[0][1];
for (int i = 1; i < points.length; i ++) {
int[] point = points[i];
//无重叠情况计数
if (point[0] > right) {
ans ++;
right = point[1];
}
}
return ans;
}
}
大家点赞、收藏、关注、评论啦~
精彩专栏推荐订阅:在下方专栏
更多博客与资料可查看获取联系方式,文末获取开发资源及更多资源博客获取
整理者:长路 时间:2024.2.13