class Solution {
public int findMinArrowShots(int[][] points) {
//remove all the overlapping baloons
//this will lead to only baloons that are not overlapping
//and we will need at min that many arros to burst them
//step1 : sort the give points in ascending order of Xend
Arrays.sort(points,(a,b)-> Integer.compare(a[1],b[1]));
//step2: get the count of non overlapping intervals and that will the no. of arrows we will need
int xstart = points[0][0];
int xend = points[0][1];
int count =1;// atleast one arrow is needed to burst baloon(s)
for(int i =1;i<points.length;i++){
if(xend < points[i][0]){// xend is less than than the xstart of next baloon hence they are not overlapping
count++;
xend = points[i][1]; //update xend
}
}
return count;
}
}
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)