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
}