如何在 JavaScript 陣列中找到並返回最長的重複數字序列


我們需要編寫一個 JavaScript 函式,它接收一個可能包含一些重複元素的數字陣列。這個函式應該返回從這個陣列中找到的最長重複數字序列的長度。

例如 −

如果輸入陣列為 −

const arr = [2, 1, 1, 2, 3, 3, 2, 2, 2, 1];

那麼輸出應該是 3,因為數字 2 在陣列中連續重複了 3 次(這是最大的數字)。

示例

const arr = [2, 1, 1, 2, 3, 3, 2, 2, 2, 1];
const findLongestSequence = (arr = []) => {
   const res = arr.reduce((acc,val,ind) => {
      if(acc.length && acc[acc.length-1][0] === val){
         acc[acc.length-1].push(val);
      }else{
         acc.push([val]);
      };
      return acc;
   },[]).reduce((acc, val) => {
      return val.length > acc.length ? val : acc;
   }); return res.length;
}
console.log(findLongestSequence(arr));

輸出

並且控制檯中的輸出為 −

3

更新於: 21-11-2020

538 次瀏覽

開啟你的 職業

透過完成課程獲得認證

開始吧
廣告
© . All rights reserved.