【前端算法每日一题】leetcode-485-最大连续 1 的个数

108 阅读1分钟

题目描述

  • 给定一个二进制数组 nums , 计算其中最大连续 1 的个数。

解题思路

  • 使用双指针法(快慢指针)
  • 当目前元素不满足等于1的条件的时候,更新连续1的个数
  • 快指针向右移动,慢指针移动到快指针的位置
  • 当目前元素满足等于1的条件的时候
  • 只移动快指针

解题代码(JavaScript)

var findMaxConsecutiveOnes = function (nums) {
  let slow = 0;
  let fast = 0;
  let maxLen = 0;
  let len = nums.length;
  while (fast <= len) {
    if (nums[fast] !== 1) {
      maxLen = Math.max(maxLen, fast - slow);
      fast++;
      slow = fast;
    } else {
      fast++;
    }
  }
  return maxLen;
};