lc-go/solutions/0/q57/solution.go
2026-01-17 12:51:40 +09:00

30 lines
621 B
Go

package q57
func insert(intervals [][]int, newInterval []int) [][]int {
ret := make([][]int, 0, len(intervals)+1)
i := 0
for ; i < len(intervals) && intervals[i][0] <= newInterval[0]; i++ {
ret = append(ret, intervals[i])
}
if len(ret) > 0 && ret[len(ret)-1][1] >= newInterval[0] {
ret[len(ret)-1][1] = max(ret[len(ret)-1][1], newInterval[1])
} else {
ret = append(ret, newInterval)
}
for ; i < len(intervals); i++ {
last := ret[len(ret)-1]
next := intervals[i]
if last[1] >= next[0] {
last[1] = max(last[1], next[1])
} else {
ret = append(ret, next)
}
}
return ret
}
var _ = insert