思路:先把二维数组按右边界排序,先取右边界为一支箭,去掉射爆的气球,并计数;然后循环此过程。
另外,学习了
Arrays.sort(points,(a,b)->(a[1]-b[1]));
对二位数组排序,新方式
public static int findMinArrowShots(int[][] points) {
if(points.length < 1)return 0;
Arrays.sort(points,(a,b)->(a[1]-b[1]));
int result = 1;
int post = points[0][1];
for (int i = 1; i < points.length; i++) {
if(post >= points[i][0] && post <= points[i][1]){//什么也不做
}else {//不在此范围内,新取一支箭,并计数
result++;
post = points[i][1];
}
}
return result;
}