Day 10: Merge Intervals (Insert Interval)

Day 10: Merge Intervals (Insert Interval)


Insert Interval

Recommended: Solution

You are given an array of non-overlapping intervals intervals where intervals[i] = [starti, endi] represent the start and the end of the ith interval and intervals is sorted in ascending order by starti. You are also given an interval newInterval = [start, end] that represents the start and end of another interval.

Insert newInterval into intervals such that intervals is still sorted in ascending order by starti and intervals still does not have any overlapping intervals (merge overlapping intervals if necessary).

Return intervals after the insertion.

Note that you don't need to modify intervals in-place. You can make a new array and return it.


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].        
def insert(intervals, newInterval):
    result = []
    i = 0
    n = len(intervals)
    
    # Step 1: Add all intervals ending before newInterval starts
    while i < n and intervals[i][1] < newInterval[0]:
        result.append(intervals[i])
        i += 1
    
    # Step 2: Merge all overlapping intervals with newInterval
    while i < n and intervals[i][0] <= newInterval[1]:
        newInterval[0] = min(newInterval[0], intervals[i][0])
        newInterval[1] = max(newInterval[1], intervals[i][1])
        i += 1
    result.append(newInterval)
    
    # Step 3: Add all intervals starting after newInterval ends.
    while i < n:
        result.append(intervals[i])
        i += 1
    
    return result        

  • Time Complexity: O(n),
  • Space Complexity: O(n)

where n is the number of intervals.

Kosisochukwu Mbachu-Igwe

Data Analyst | Public Health & Patient Support Specialist Enhancing Healthcare Outcomes with Data-Driven Insights | Customer Analytics & Predictive Insights | Machine Learning for Business Growth |

7 个月

Well said! Keep it up.

要查看或添加评论,请登录

Olaoluwa Saola的更多文章

  • Amazon Redshift Data Warehouse Project Using S3, Boto3, and psycopg2

    Amazon Redshift Data Warehouse Project Using S3, Boto3, and psycopg2

    In this project, I worked with Amazon Redshift and S3 to build a data warehouse solution, automating data ingestion and…

    2 条评论
  • Data Warehouse part 2: OLAP vs OLTP

    Data Warehouse part 2: OLAP vs OLTP

    Data engineering plays a pivotal role in modern data management, enabling organizations to efficiently process and…

    2 条评论
  • Building a Data Warehouse Part 1: A Step-by-Step Guide

    Building a Data Warehouse Part 1: A Step-by-Step Guide

    In today’s data-driven world, the ability to effectively store, manage, and analyze large volumes of data is crucial…

    8 条评论
  • Data Engineering 101: Setting Up PostgreSQL with Python

    Data Engineering 101: Setting Up PostgreSQL with Python

    Read article on Medium Data engineering involves managing and processing data for analysis, which often starts with…

    4 条评论
  • Day 20: Find Median of a Datastream (Two Heaps)

    Day 20: Find Median of a Datastream (Two Heaps)

    Median of a Datastream Recommended: Solution The median is the middle value in an ordered integer list. If the size of…

  • Day 19: Modified Binary Search (Search Insert Position)

    Day 19: Modified Binary Search (Search Insert Position)

    Search Insert Position Recommended: Solution Given a sorted array of distinct integers and a target value, return the…

  • Day 18 Missing Number (Cyclic Sort)

    Day 18 Missing Number (Cyclic Sort)

    Missing Number Recommended: Solution Given an array containing distinct numbers in the range , return the only number…

    2 条评论
  • Day 17: Path Sum II (DFS)

    Day 17: Path Sum II (DFS)

    Path Sum II Recommended: Solution Given the of a binary tree and an integer , return all root-to-leaf paths where the…

  • Day 16: Path Sum (Tree Depth First Search)

    Day 16: Path Sum (Tree Depth First Search)

    Path Sum Recommended: Solution Given the of a binary tree and an integer , return if the tree has a root-to-leaf path…

    1 条评论
  • Recap

    Recap

    ?? Here are the links to my previous posts: Day 15: Zig zag Binary Tree Traversal Day 14: Reverse Level order traversal…

    4 条评论

社区洞察

其他会员也浏览了