


Consider 'Intervals' = [[1, 3], [5, 7], [8, 12]], and 'newInterval' = [4, 6]
The interval [4, 6] overlaps with [5, 7]. Therefore we can merge the intervals and produce an interval [4, 7]. Hence the answer [[1,3], [4,7], [8,12]]
The first line of the input contains a single integer, 'T,’ denoting the number of test cases.
The first line of each test case contains a single integer, ‘N’, denoting the number of intervals.
The following ‘N’ lines of the test case contain two space-separated integers, ‘Intervals[i][0]’ and ‘Intervals[i][1]’, denoting the start and the end of the ‘i-th’ interval.
The last line of the test case contains two space-separated integers, ‘newInterval[0]’ and ‘newInterval[1]’, denoting the interval to be inserted into the list of intervals.
For each test case, print the intervals sorted by their start time. Each interval is to be printed in a separate line in a space-separated manner.
Print the output of each test case in a separate line.
You do not need to print anything. It has already been taken care of. Just implement the function.
1 <= T <= 5
0 <= N <= 10^5
0 <= Intervals[i][0], Intervals[i][1] <= 10^10
0 <= newInterval[0], newInterval[1] <= 10^10
Time Limit: 1 sec
In this approach, we will insert the newInterval in the given array of intervals at the correct position according to newInterval[0]. After inserting, we will check if the newInterval overlaps with other intervals. If an interval overlaps with the other interval, we will merge them into one interval.
The conditions we have to check while inserting the newInterval are-:
We will create a function doesOverlap(interval1, interva2), which returns a boolean if the given intervals intervals1 and interval2 overlap with each other or not.
Algorithm:
In this approach, we will maintain a stack, and we will insert each interval in the stack one at a time by checking if the current interval overlaps with the newInterval.
If the newInterval overlaps with the first interval, we merge the two intervals and insert them into the stack. Otherwise, we can simply insert the first interval and newInterval into the stack.
We will traverse through all remaining intervals. We will iterate the index from 1 to N - 1
We will create a function doesOverlap(interval1, interva2), which returns a boolean if the given intervals intervals1 and interval2 overlap with each other or not.
Algorithm: