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

Độ dài của dãy số liên tiếp dài nhất có thể có trong JavaScript

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một mảng các số nguyên làm đối số đầu tiên và duy nhất.

Hàm sẽ tìm và trả về độ dài của dãy tăng liên tiếp dài nhất tồn tại trong mảng (liền kề hoặc không liền kề).

Ví dụ -

Nếu mảng đầu vào là -

const arr = [4, 6, 9, 1, 2, 8, 5, 3, -1];

Khi đó đầu ra phải là 6 vì chuỗi tăng liên tiếp dài nhất là 1, 2, 3, 4,5, 6.

Ví dụ

Sau đây là mã -

const arr = [4, 6, 9, 1, 2, 8, 5, 3, -1];
const consecutiveSequence = (arr = []) => {
   const consecutiveRight = {};
   let max = 0;
   for (let i = 0; i < arr.length; i += 1) {
      let curr = arr[i];
      if (consecutiveRight[curr] !== undefined) {
         continue; // We already have this number.
         consecutiveRight[curr] = 1 + (consecutiveRight[curr + 1] || 0);
         while (consecutiveRight[curr - 1] !== undefined) {
            consecutiveRight[curr - 1] = consecutiveRight[curr] + 1;
            curr -= 1;
         }
         max = Math.max(max, consecutiveRight[curr]);
      }
      return max;
};
console.log(consecutiveSequence(arr));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

6