December 27, 2019

986. Interval List Intersections

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;
    }
}
comments powered by Disqus