986. Interval List Intersections
Time = O(n), Space = O(1)
class Solution {
public int[][] intervalIntersection(int[][] A, int[][] B) {
List<int[]> intersections = new ArrayList<>();
int i = 0;
int j = 0;
while (i < A.length && j < B.length) {
int start = Math.max(A[i][0], B[j][0]);
int end = Math.min(A[i][1], B[j][1]);
if (start <= end) {
intersections.add(new int[]{start, end});
}
if (A[i][1] < B[j][1]) {
i++;
} else {
j++;
}
}
int[][] res = new int[intersections.size()][2];
for (int k = 0; k < intersections.size(); k++) {
res[k] = intersections.get(k);
}
return res;
}
}