0
0
DSA Pythonprogramming~20 mins

Insert Interval into Sorted List in DSA Python - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Interval Insertion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output after inserting an interval that merges with one existing interval
What is the output of the code after inserting the interval [4, 8] into the sorted list [[1, 3], [6, 9]]?
DSA Python
def insert_interval(intervals, new_interval):
    result = []
    i = 0
    while i < len(intervals) and intervals[i][1] < new_interval[0]:
        result.append(intervals[i])
        i += 1
    while i < len(intervals) and intervals[i][0] <= new_interval[1]:
        new_interval[0] = min(new_interval[0], intervals[i][0])
        new_interval[1] = max(new_interval[1], intervals[i][1])
        i += 1
    result.append(new_interval)
    while i < len(intervals):
        result.append(intervals[i])
        i += 1
    return result

intervals = [[1, 3], [6, 9]]
new_interval = [4, 8]
print(insert_interval(intervals, new_interval))
A[[1, 3], [4, 9]]
B[[1, 8], [6, 9]]
C[[1, 3], [4, 8], [6, 9]]
D[[1, 9]]
Attempts:
2 left
💡 Hint
Think about how overlapping intervals merge into one.
Predict Output
intermediate
2:00remaining
Output after inserting an interval that does not overlap
What is the output after inserting the interval [10, 12] into the sorted list [[1, 5], [6, 9]]?
DSA Python
def insert_interval(intervals, new_interval):
    result = []
    i = 0
    while i < len(intervals) and intervals[i][1] < new_interval[0]:
        result.append(intervals[i])
        i += 1
    while i < len(intervals) and intervals[i][0] <= new_interval[1]:
        new_interval[0] = min(new_interval[0], intervals[i][0])
        new_interval[1] = max(new_interval[1], intervals[i][1])
        i += 1
    result.append(new_interval)
    while i < len(intervals):
        result.append(intervals[i])
        i += 1
    return result

intervals = [[1, 5], [6, 9]]
new_interval = [10, 12]
print(insert_interval(intervals, new_interval))
A[[1, 5], [6, 9], [10, 12]]
B[[1, 5], [6, 12]]
C[[10, 12], [1, 5], [6, 9]]
D[[1, 12]]
Attempts:
2 left
💡 Hint
Check if the new interval overlaps with any existing intervals.
🔧 Debug
advanced
2:00remaining
Identify the error in interval insertion code
What error does the following code raise when inserting [2, 5] into [[1, 3], [6, 9]]?
DSA Python
def insert_interval(intervals, new_interval):
    result = []
    i = 0
    while i < len(intervals) and intervals[i][1] < new_interval[0]:
        result.append(intervals[i])
        i += 1
    while i < len(intervals) and intervals[i][0] <= new_interval[1]:
        new_interval[0] = min(new_interval[0], intervals[i][0])
        new_interval[1] = max(new_interval[1], intervals[i][1])
        i += 1
    result.append(new_interval)
    while i < len(intervals):
        result.append(intervals[i])
        i += 1
    return result

intervals = [[1, 3], [6, 9]]
new_interval = [2, 5]
print(insert_interval(intervals, new_interval))
ASyntaxError: invalid syntax
BTypeError: unsupported operand type(s)
CIndexError: list index out of range
DNo error, outputs [[1, 5], [6, 9]]
Attempts:
2 left
💡 Hint
Check the loop condition in the last while loop carefully.
Predict Output
advanced
2:00remaining
Output after inserting an interval that merges multiple intervals
What is the output after inserting [2, 7] into [[1, 3], [4, 6], [8, 10]]?
DSA Python
def insert_interval(intervals, new_interval):
    result = []
    i = 0
    while i < len(intervals) and intervals[i][1] < new_interval[0]:
        result.append(intervals[i])
        i += 1
    while i < len(intervals) and intervals[i][0] <= new_interval[1]:
        new_interval[0] = min(new_interval[0], intervals[i][0])
        new_interval[1] = max(new_interval[1], intervals[i][1])
        i += 1
    result.append(new_interval)
    while i < len(intervals):
        result.append(intervals[i])
        i += 1
    return result

intervals = [[1, 3], [4, 6], [8, 10]]
new_interval = [2, 7]
print(insert_interval(intervals, new_interval))
A[[2, 7], [8, 10]]
B[[1, 3], [2, 7], [8, 10]]
C[[1, 10]]
D[[1, 7], [8, 10]]
Attempts:
2 left
💡 Hint
The new interval overlaps with two existing intervals, so they merge.
🧠 Conceptual
expert
2:00remaining
Number of intervals after inserting and merging
Given a sorted list of intervals [[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]] and inserting [4, 9], how many intervals will the list have after insertion and merging?
A2
B3
C4
D5
Attempts:
2 left
💡 Hint
Consider which intervals overlap with [4, 9] and merge them.