JavaScript 中的最長遞減子序列子陣列


我們需要編寫一個 JavaScript 函式,它的輸入是一組整數。該函式應當返回該組整數中最長遞減子序列的長度。

例如 −

如果輸入陣列是 −

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

則輸出應當是 −

const output = 4;

因為最長遞減子序列(連續單詞)是 [5, 4, 3, 2];

示例

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

輸出

這會生成以下輸出 −

4

更新於: 25-11-2020

176 次瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始學習
廣告
© . All rights reserved.