1
var findMinArrowShots = function (points) {2
points.sort((a, b) => a[0] - b[0]);4
let merged = [points[0]];6
let earliestEnd = points[0][1];8
for (let i = 1; i < points.length; i++) {9
let lastEnd = merged[merged.length - 1][1];10
let currStart = points[i][0];11
let currEnd = points[i][1];13
if (lastEnd >= currStart && currStart <= earliestEnd) {14
merged[merged.length - 1][1] = Math.max(lastEnd, currEnd);15
earliestEnd = Math.min(earliestEnd, points[i][1]);17
merged.push(points[i]);18
earliestEnd = points[i][1];