Intersection of Two Sorted Intervals
Last updated
Last updated
Input:
A =
[[0,2],[5,10],[13,23],[24,25]]
, B =
[[1,5],[8,12],[15,24],[25,26]]
Output:
[[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]]
Reminder:
The inputs and the desired output are lists of Interval objects, and not arrays or lists./**
* Definition for an interval.
* public class Interval {
* int start;
* int end;
* Interval() { start = 0; end = 0; }
* Interval(int s, int e) { start = s; end = e; }
* }
*/
class Solution {
public Interval[] intervalIntersection(Interval[] A, Interval[] B) {
List<Interval> res = new ArrayList<>();
int i = 0, j = 0;
while (i < A.length && j < B.length) {
int start = Math.max(A[i].start, B[j].start);
int end = Math.min(A[i].end, B[j].end);
if (end >= start) {
// intersect
res.add(new Interval(start, end));
}
if (A[i].end < B[j].end) {
i++;
} else {
j++;
}
}
return res.toArray(new Interval[res.size()]);
}
}