Untitled
unknown
plain_text
a year ago
1.3 kB
5
Indexable
class Solution {
public int[][] removeInterval(int[][] intervals, int[] toBeRemoved) {
// List to store result intervals
List<int[]> result = new ArrayList<>();
// Iterate through each interval in the input
for (int[] interval : intervals) {
// Case 1: Current interval is completely before removal interval
if (interval[1] <= toBeRemoved[0]) {
result.add(interval);
}
// Case 2: Current interval is completely after removal interval
else if (interval[0] >= toBeRemoved[1]) {
result.add(interval);
}
// Case 3: Current interval overlaps with removal interval
else {
// Left portion before removal
if (interval[0] < toBeRemoved[0]) {
result.add(new int[]{interval[0], toBeRemoved[0]});
}
// Right portion after removal
if (interval[1] > toBeRemoved[1]) {
result.add(new int[]{toBeRemoved[1], interval[1]});
}
}
}
// Convert list to 2D array
return result.toArray(new int[result.size()][]);
}
}Editor is loading...
Leave a Comment