Challenge - 5 Problems
Interval Insertion Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2: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))
Attempts:
2 left
💡 Hint
Think about how overlapping intervals merge into one.
✗ Incorrect
The new interval [4, 8] overlaps with [6, 9], so they merge into [4, 9]. The first interval [1, 3] stays separate.
❓ Predict Output
intermediate2: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))
Attempts:
2 left
💡 Hint
Check if the new interval overlaps with any existing intervals.
✗ Incorrect
The new interval [10, 12] does not overlap with any existing intervals, so it is simply appended at the end.
🔧 Debug
advanced2: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))
Attempts:
2 left
💡 Hint
Check the loop condition in the last while loop carefully.
✗ Incorrect
The last while loop uses 'i <= len(intervals)', which tries to access intervals[len(intervals)] causing IndexError.
❓ Predict Output
advanced2: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))
Attempts:
2 left
💡 Hint
The new interval overlaps with two existing intervals, so they merge.
✗ Incorrect
The new interval [2, 7] overlaps with [1, 3] and [4, 6], merging into [1, 7]. The last interval stays separate.
🧠 Conceptual
expert2: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?
Attempts:
2 left
💡 Hint
Consider which intervals overlap with [4, 9] and merge them.
✗ Incorrect
The new interval [4, 9] overlaps with [3, 5], [6, 7], and [8, 10]. These merge into [3, 10]. The intervals [1, 2] and [12, 16] remain separate, so total intervals are 3.