20 lines
450 B
Go
20 lines
450 B
Go
package q56
|
|
|
|
import "slices"
|
|
|
|
func merge(intervals [][]int) [][]int {
|
|
slices.SortFunc(intervals, func(a, b []int) int { return a[0] - b[0] })
|
|
|
|
p := 0
|
|
for i := 1; i < len(intervals); i++ {
|
|
if intervals[p][1] >= intervals[i][0] {
|
|
intervals[p][1] = max(intervals[p][1], intervals[i][1])
|
|
} else {
|
|
p++
|
|
intervals[p][0], intervals[p][1] = intervals[i][0], intervals[i][1]
|
|
}
|
|
}
|
|
return intervals[:min(p+1, len(intervals))]
|
|
}
|
|
|
|
var _ = merge
|