You are given an array of non-overlapping intervals sorted in ascending order by start_i. You are also given an interval newInterval.
Insert newInterval into intervals such that intervals is still sorted in ascending order by start_i and intervals still has no overlapping intervals (merge overlapping intervals if necessary).
Return intervals after the insertion.
Key insight: Process intervals in three phases:
Real-world analogy: Imagine inserting a new meeting into a calendar. You need to check if it conflicts with existing meetings and merge them if they overlap.
intervals = [[1,3],[6,9]], newInterval = [2,5][[1,5],[6,9]]intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8][[1,2],[3,10],[12,16]]intervals = [], newInterval = [5,7][[5,7]]0 <= intervals.length <= 10^4intervals[i].length == 20 <= start_i <= end_i <= 10^5intervals is sorted by start_i in ascending ordernewInterval.length == 20 <= newInterval_start <= newInterval_end <= 10^5Click "Run" to execute your code against test cases
Socratic guidance - I'll ask questions, not give answers