## Problem Statement

Given a list of non-overlapping intervals sorted by their start time, **insert a given interval at the correct position** and merge all necessary intervals to produce a list that has only mutually exclusive intervals.

**Example 1**:

```
Input: Intervals=[[1,3], [5,7], [8,12]], New Interval=[4,6]
Output: [[1,3], [4,7], [8,12]]
Explanation: After insertion, since [4,6] overlaps with [5,7], we merged them into one [4,7].
```

**Example 2**:

```
Input: Intervals=[[1,3], [5,7], [8,12]], New Interval=[4,10]
Output: [[1,3], [4,12]]
Explanation: After insertion, since [4,10] overlaps with [5,7] & [8,12], we merged them into [4,12].
```

**Example 3**:

```
Input: Intervals=[[2,3],[5,7]], New Interval=[1,4]
Output: [[1,4], [5,7]]
Explanation: After insertion, since [1,4] overlaps with [2,3], we merged them into one [1,4].
```

**Constraints:**

- 1 <= intervals.length <= 10<sup>4<sup>
`intervals[i].length == 2`

- 0 <= start<sub>i</sub> <= end<sub>i</sub> <= 10<sup>5<sup>
`intervals`

is sorted by starti in`ascending`

order.`newInterval.length == 2`

- 0 <= start <= end <= 10<sup>5<sup>

## Try it yourself

Try solving this question here:

Python3

Python3