在JavaScript中找到二进制数组中连续1的最大数目

我们需要编写一个JavaScript函数,该函数将二进制数组(仅包含0或1的数组)作为唯一参数。

函数应该找到仅由1组成的数组的连续子数组的长度,然后将其返回。

例如-

如果输入数组是-

const arr = [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1];

那么输出应该是-

const output = 4;

我们将使用滑动窗口算法来捕获仅由1组成的最大窗口(大小最大)。

示例

为此的代码将是-

const arr = [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1];
const findMaxConsecutiveOnes = (arr = []) => {
   let left = 0;
   let right = 0;
   let max = 0;
   while (right < arr.length) {
      if (arr[right] === 0) {
         if (right - left > max) {
            max = right - left
         };
         right++;
         left = right;
      } else {
         right++
      };
   };
   return right - left > max ? right - left : max;
}
console.log(findMaxConsecutiveOnes(arr));
输出结果

控制台中的输出将是-

4