如何使用 JavaScript 查找并返回数组中最长的重复数字序列

javascriptweb developmentfront end technologyobject oriented programming

我们需要编写一个 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

相关文章