Insert Interval - Array - Medium - LeetCode
💻 coding

Insert Interval - Array - Medium - LeetCode

1 min read 195 words
1 min read
ShareWhatsAppPost on X
  • 1The problem involves inserting a new interval into a set of non-overlapping intervals, merging them if necessary.
  • 2The input intervals are assumed to be sorted by their start times, which simplifies the merging process.
  • 3The solution has a time complexity of O(n) and a space complexity of O(n), making it efficient for large input sizes.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The problem involves inserting a new interval into a set of non-overlapping intervals, merging them if necessary."

Insert Interval - Array - Medium - LeetCode

Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).

You may assume that the intervals were initially sorted according to their start times.

Example 1:

Input: intervals = [[1,3],[6,9]], newInterval = [2,5] Output: [[1,5],[6,9]] Example 2:

Input: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8] Output: [[1,2],[3,10],[12,16]] Explanation: Because the new interval [4,8] overlaps with [3,5],[6,7],[8,10]. Example 3:

Input: intervals = [], newInterval = [5,7] Output: [[5,7]] Example 4:

Input: intervals = [[1,5]], newInterval = [2,3] Output: [[1,5]] Example 5:

Input: intervals = [[1,5]], newInterval = [2,7] Output: [[1,7]]

Constraints:

0 <= intervals.length <= 104 intervals[i].length == 2 0 <= intervals[i][0] <= intervals[i][1] <= 105 intervals is sorted by intervals[i][0] in ascending order. newInterval.length == 2 0 <= newInterval[0] <= newInterval[1] <= 105

public class Solution {
 public int[][] Insert(int[][] intervals, int[] newInterval) {
 var res = new List<int[]>();
 if(intervals.Length==0){
 res.Add(newInterval);
 return res.ToArray();
 }
 
 int start = 0;
 int end = 0;
 int i=0;
 for(i=0;i<intervals.Length && intervals[i][1] < newInterval[0];i++){
 if(intervals[i][1]<newInterval[0]){
 res.Add(new int[]{intervals[i][0], intervals[i][1]});
 } 
 }
 
 for(;i<intervals.Length && intervals[i][0]<= newInterval[1];i++){
 newInterval[0]=Math.Min(newInterval[0], intervals[i][0]);
 newInterval[1]=Math.Max(newInterval[1], intervals[i][1]);
 }
 
 res.Add(newInterval);
 
 for(;i<intervals.Length;i++){
 res.Add(new int[]{intervals[i][0], intervals[i][1]});
 } 
 
 
 return res.ToArray();
 }
}

Time Complexity: O(n)

Space Complexity: O(n)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 31 October 2020 · 1 min read · 195 words

Part of AskGif Blog · coding

You might also like

Insert Interval - Array - Medium - LeetCode | AskGif Blog