在 JavaScript 中查找最长的连续连接


问题

我们需要编写 JavaScript 函数,该函数将数组 arr 作为第一个也是唯一参数,其中包含成对的数字。在每对数字中,第一个数字始终小于第二个数字。

现在,我们定义一对 (c, d),它可以后跟另一对 (a, b),当且仅当 b < c 时。对的链可以用这种方式形成。我们的函数应该找到可以形成的最长链。

例如,如果输入函数为

输入

const arr = [
   [1, 2], [2, 3], [3, 4]
];

输出

const output = 2;

输出说明

最长链为 [1,2] -> [3,4]

示例

   以下是代码 −

 实时演示

const arr = [
[1, 2], [2, 3], [3, 4]
];
const findLongestChain = (arr = []) => {
   arr.sort(([, b], [, d]) => b - d)
   let currentEnd = arr[0][1]
   let count = 1
   for (const [start, end] of arr) {
      if (start > currentEnd) {
         count += 1
         currentEnd = end
      }
   }
   return count
}
console.log(findLongestChain(arr));

输出

2

更新于: 2021 年 4 月 24 日

102 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告