Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm các phép nối liên tiếp dài nhất trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các cặp số, arr, làm đối số đầu tiên và duy nhất. Trong mọi cặp, số đầu tiên luôn nhỏ hơn số thứ hai.

Bây giờ, chúng ta xác định một cặp (c, d) có thể theo sau một cặp khác (a, b) nếu và chỉ khi b

Ví dụ:nếu đầu vào của hàm là

Đầu vào

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

Đầu ra

const output = 2;

Giải thích đầu ra

Chuỗi dài nhất là [1,2] -> [3,4]

Ví dụ

Sau đây là mã -

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));

Đầu ra

2