LC 986. Interval List Intersections
Given two lists of closed intervals, each list of intervals is pairwise disjoint and in sorted order.
Return the intersection of these two interval lists.
(Formally, a closed interval [a, b]
(with a <= b
) denotes the set of real numbers x
with a <= x <= b
. The intersection of two closed intervals is a set of real numbers that is either empty, or can be represented as a closed interval. For example, the intersection of [1, 3] and [2, 4] is [2, 3].)
class Solution { public: vector<Interval> intervalIntersection(vector<Interval>& A, vector<Interval>& B) { int ai = 0, bi = 0; vector<Interval> ret; while(ai < A.size() && bi < B.size()) { if(A[ai].end < B[bi].start) { ai++; continue; } else if(B[bi].end < A[ai].start) { bi++; continue; } ret.push_back(Interval(max(A[ai].start, B[bi].start), min(A[ai].end, B[bi].end))); if(A[ai].end <= B[bi].end) { ai++; }else{ bi++; } } return ret; } };