class Solution {
public int findMinArrowShots(int[][] points) {
Arrays.sort(points, (o1, o2) -> Integer.compare(o1[0], o2[0]));
int count = 0;
int min = points[0][1];
for(int i = 1; i < points.length;i++){
if(min > points[i - 1][1]) min = points[i - 1][1];
if(points[i][0] > min){
count++;
min = points[i][1];
}
}
return ++count;
}
}
重叠区间,如果不满足最小右界 >= 下一个气球的起点,则需要新的箭来射
该篇博客介绍了一个算法问题,即如何找到最少数量的箭来引爆所有气球。代码实现中,首先对气球按起始位置进行排序,然后遍历气球,如果当前箭的右边界小于前一个气球的结束位置,则需要发射新的箭。最终返回箭的数量。此问题涉及到区间覆盖和排序算法的应用。
594

被折叠的 条评论
为什么被折叠?



