func merge(intervals [][]int) [][]int {
sort.Slice(intervals,func(i, j int) bool {
return intervals[i][0] < intervals[j][0]
})
l := intervals[0][0]
r := intervals[0][1]
n := len(intervals)
var ans [][]int
for i := 0; i < n; i ++ {
if r >= intervals[i][0] {
r = max(r, intervals[i][1])
continue
}
ans = append(ans, []int{l, r})
l = intervals[i][0]
r = intervals[i][1]
}
ans = append(ans, []int{l, r})
return ans
}