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

Mảng con dãy con giảm dài nhất trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng Số nguyên. Hàm sẽ trả về độ dài của dãy con giảm dần dài nhất từ ​​mảng.

Ví dụ -

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

const arr = [5, 2, 5, 4, 3, 2, 4, 6, 7];

Sau đó, đầu ra phải là -

const output = 4;

vì dãy con giảm dần dài nhất (của các từ liên tiếp) là [5, 4, 3, 2];

Ví dụ

const arr = [5, 2, 5, 4, 3, 2, 4, 6, 7];
const decreasingSequence = (arr = []) => {
   let longest = [];
   let curr = [];
   const setDefault = (newItem) => {
      if (curr.length > longest.length) { longest = curr;
   }
   curr = [newItem];
};
for (const item of arr) {
   if (curr.length && item > curr[curr.length - 1]) {
      setDefault(item);
   } else {
      curr.push(item);
   }
}
setDefault();
   return longest.length;
};
console.log(decreasingSequence(arr));

Đầu ra

Điều này sẽ tạo ra kết quả sau -

4