Bird
0
0
DSA Cprogramming~20 mins

Insert Interval into Sorted List in DSA C - 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 with overlap
What is the output list of intervals after inserting [4, 8] into the sorted list [[1, 3], [6, 9]]?
DSA C
intervals = [[1, 3], [6, 9]]
newInterval = [4, 8]

// After insertion and merging overlapping intervals, print the resulting list
A[[1, 3], [4, 9]]
B[[1, 8], [9, 9]]
C[[1, 9]]
D[[1, 3], [6, 8]]
Attempts:
2 left
💡 Hint
Remember to merge intervals that overlap after insertion.
Predict Output
intermediate
2:00remaining
Result after inserting a non-overlapping interval
What is the output list of intervals after inserting [10, 12] into the sorted list [[1, 5], [6, 9]]?
DSA C
intervals = [[1, 5], [6, 9]]
newInterval = [10, 12]

// Insert and print the resulting list
A[[1, 12]]
B[[1, 5], [6, 9], [10, 12]]
C[[1, 5], [6, 12]]
D[[10, 12], [1, 5], [6, 9]]
Attempts:
2 left
💡 Hint
Check if the new interval overlaps with any existing intervals.
🔧 Debug
advanced
3:00remaining
Identify the error in interval insertion code
What error will this code produce when inserting [2, 5] into [[1, 3], [6, 9]]? int intervals[][2] = {{1, 3}, {6, 9}}; int newInterval[2] = {2, 5}; int result[3][2]; int idx = 0; for (int i = 0; i < 2; i++) { if (intervals[i][1] < newInterval[0]) { result[idx][0] = intervals[i][0]; result[idx][1] = intervals[i][1]; idx++; } else if (intervals[i][0] > newInterval[1]) { result[idx][0] = newInterval[0]; result[idx][1] = newInterval[1]; idx++; newInterval[0] = intervals[i][0]; newInterval[1] = intervals[i][1]; } else { newInterval[0] = (intervals[i][0] < newInterval[0]) ? intervals[i][0] : newInterval[0]; newInterval[1] = (intervals[i][1] > newInterval[1]) ? intervals[i][1] : newInterval[1]; } } result[idx][0] = newInterval[0]; result[idx][1] = newInterval[1]; idx++; // print result
DSA C
int intervals[][2] = {{1, 3}, {6, 9}};
int newInterval[2] = {2, 5};
int result[3][2];
int idx = 0;
for (int i = 0; i < 2; i++) {
  if (intervals[i][1] < newInterval[0]) {
    result[idx][0] = intervals[i][0];
    result[idx][1] = intervals[i][1];
    idx++;
  } else if (intervals[i][0] > newInterval[1]) {
    result[idx][0] = newInterval[0];
    result[idx][1] = newInterval[1];
    idx++;
    newInterval[0] = intervals[i][0];
    newInterval[1] = intervals[i][1];
  } else {
    newInterval[0] = (intervals[i][0] < newInterval[0]) ? intervals[i][0] : newInterval[0];
    newInterval[1] = (intervals[i][1] > newInterval[1]) ? intervals[i][1] : newInterval[1];
  }
}
result[idx][0] = newInterval[0];
result[idx][1] = newInterval[1];
idx++;
ACompilation error: cannot assign arrays directly
BRuntime error: index out of bounds
CLogical error: newInterval inserted multiple times
DNo error, code runs correctly
Attempts:
2 left
💡 Hint
In C, arrays cannot be assigned directly with = operator.
🧠 Conceptual
advanced
2:00remaining
Understanding interval merging logic
Why is it important to sort intervals before inserting a new interval and merging?
ASorting reduces the number of intervals to merge by removing duplicates.
BSorting is not necessary; intervals can be merged in any order.
CSorting helps to find the maximum interval length quickly.
DSorting ensures intervals are in order, so merging adjacent or overlapping intervals is easier and correct.
Attempts:
2 left
💡 Hint
Think about how merging works when intervals are ordered.
🚀 Application
expert
3:00remaining
Final merged intervals after multiple insertions
Given the initial sorted intervals [[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]], what is the final list after inserting intervals [4, 8] and then [17, 19] sequentially with merging?
A[[1, 2], [3, 10], [12, 19]]
B[[1, 2], [3, 8], [6, 10], [12, 16], [17, 19]]
C[[1, 2], [3, 10], [12, 16], [17, 19]]
D[[1, 2], [3, 5], [6, 10], [12, 16], [17, 19]]
Attempts:
2 left
💡 Hint
Merge overlapping intervals after each insertion carefully.