Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 1.23 KB

986-区间列表的交集.md

File metadata and controls

39 lines (29 loc) · 1.23 KB

986-区间列表的交集

给定两个由一些 闭区间 组成的列表,firstList 和 secondList ,其中 firstList[i] = [starti, endi] 而  secondList[j] = [startj, endj] 。每个区间列表都是成对 不相交 的,并且 已经排序 。

返回这 两个区间列表的交集 。

形式上,闭区间  [a, b](其中  a <= b)表示实数  x  的集合,而  a <= x <= b 。

两个闭区间的 交集 是一组实数,要么为空集,要么为闭区间。例如,[1, 3] 和 [2, 4] 的交集为 [2, 3] 。

输入:firstList = [[0,2],[5,10],[13,23],[24,25]], secondList = [[1,5],[8,12],[15,24],[25,26]] 输出:[[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]]

题解参考

const intervalIntersection = function (A, B) {
  const res = [];
  let i = 0;
  let j = 0;

  while (i < A.length && j < B.length) {
    const start = Math.max(A[i][0], B[j][0]);
    const end = Math.max(A[i][1], B[j][1]);

    if (start <= end) {
      res.push([start, end]);
    }
    if (A[i][1] < B[j][1]) {
      i++;
    } else {
      j++;
    }
  }

  return res;
};