如何在 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.