在 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 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.