| 123456789101112131415161718192021222324252627 | 
							- type arr2d [][]int
 
- func (a arr2d) Len() int           { return len(a) }
 
- func (a arr2d) Less(i, j int) bool { return a[i][0] < a[j][0] }
 
- func (a arr2d) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
 
- func findMinArrowShots(points [][]int) (cnt int) {
 
- 	n := len(points)
 
- 	if n <= 1 {
 
- 		return n
 
- 	}
 
- 	sort.Sort(arr2d(points))
 
- 	beg, end := points[0][0], points[0][1]
 
- 	for i := 1; i < n; i++ {
 
- 		if b, e := points[i][0], points[i][1]; beg <= b && b <= end {
 
- 			beg = b
 
- 			if e < end {
 
- 				end = e
 
- 			}
 
- 		} else {
 
- 			cnt++
 
- 			beg, end = b, e
 
- 		}
 
- 	}
 
- 	cnt++
 
- 	return
 
- }
 
 
  |