Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng các cặp số arr làm đối số duy nhất. Trong mỗi cặp, số đầu tiên luôn nhỏ hơn số thứ hai.
Chúng ta định nghĩa cặp (c, d) có thể theo sau cặp (a, b) nếu và chỉ nếu b < c. Chuỗi các cặp có thể được hình thành theo cách này. Hàm phải tìm độ dài chuỗi dài nhất có thể tạo thành.
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ụ
Dưới đâ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