Untitled
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()][]); } }
Leave a Comment