Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng số, arr, làm đối số đầu tiên và duy nhất
Hàm của chúng ta sẽ tìm và trả về độ dài của một mảng con như vậy, trong đó sự khác biệt giữa giá trị lớn nhất và giá trị nhỏ nhất của nó là chính xác 1 .
Ví dụ:nếu đầu vào của hàm là -
const arr = [2, 4, 3, 3, 6, 3, 4, 8];
Sau đó, đầu ra phải là -
const output = 5;
Giải thích đầu ra
Bởi vì mảng con mong muốn là [4, 3, 3, 3, 4]
Ví dụ
Sau đây là mã -
const arr = [2, 4, 3, 3, 6, 3, 4, 8]; const longestSequence = (arr = []) => { const map = arr.reduce((acc, num) => { acc[num] = (acc[num] || 0) + 1 return acc }, {}) return Object.keys(map).reduce((max, key) => { const nextKey = parseInt(key, 10) + 1 if (map[nextKey] >= 0) { return Math.max( max, map[key] + map[nextKey], ) } return max }, 0); }; console.log(longestSequence(arr));
Đầu ra
Sau đây là đầu ra của bảng điều khiển -
5