-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsolution.java
More file actions
31 lines (25 loc) · 841 Bytes
/
Copy pathsolution.java
File metadata and controls
31 lines (25 loc) · 841 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.*;
class Solution {
public ArrayList<int[]> mergeOverlap(int[][] arr) {
ArrayList<int[]> result = new ArrayList<>();
if (arr.length == 0)
return result;
// Step 1: Sort intervals by start
Arrays.sort(arr, (a, b) -> a[0] - b[0]);
int start = arr[0][0];
int end = arr[0][1];
// Step 2: Traverse intervals
for (int i = 1; i < arr.length; i++) {
if (arr[i][0] <= end) {
end = Math.max(end, arr[i][1]);
} else {
result.add(new int[] { start, end });
start = arr[i][0];
end = arr[i][1];
}
}
// Step 3: Add last interval
result.add(new int[] { start, end });
return result;
}
}