| 1234567891011121314151617181920212223242526272829 | /** * Definition for an interval. * type Interval struct { *	   Start int *	   End   int * } */func eraseOverlapIntervals(intervals []Interval) (res int) {	sort.Sort(inters(intervals))	fast, slow, n := 1, 0, len(intervals)	for ; fast < n; fast++ { // Greedy		if intervals[fast].Start < intervals[slow].End { // If overlaps,			if intervals[fast].End < intervals[slow].End { // Choose the interval that ends earlier				slow = fast			}			res++		} else {			slow = fast		}	}	return}type inters []Intervalfunc (is inters) Len() int           { return len(is) }func (is inters) Less(i, j int) bool { return is[i].Start < is[j].Start }func (is inters) Swap(i, j int)      { is[i], is[j] = is[j], is[i] }
 |