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();
}
}