0057.插入区间
方法一:模拟
时间复杂度 $O(n)$,空间复杂度 $O(1)$。
func insert(intervals [][]int, newInterval []int) [][]int {
ans, first := [][]int{}, false
for _, interval := range intervals {
if interval[1] < newInterval[0] {
ans = append(ans, interval)
} else if interval[0] > newInterval[1] {
if !first {
ans, first = append(ans, newInterval), true
}
ans = append(ans, interval)
} else {
if interval[0] < newInterval[0] {
newInterval[0] = interval[0]
}
if interval[1] > newInterval[1] {
newInterval[1] = interval[1]
}
}
}
if !first {
ans = append(ans, newInterval)
}
return ans
}