/**
* @function maxConsecutiveOnes
* @description Given a binary array nums, return the maximum number of consecutive 1's in the array.
* @param {number[]} nums
* @return {number}
* @see [Leetcode link](https://leetcode.com/problems/max-consecutive-ones/)
*/
export const maxConsecutiveOnes = (nums) => {
if (!nums.length) return 0
let result = 0
let k = 0
for (
let slowPointer = 0, fastPointer = 0;
fastPointer < nums.length;
fastPointer++
) {
if (nums[fastPointer] === 0) k--
while (k < 0) {
if (nums[slowPointer] === 0) {
k++
}
slowPointer++
}
result = Math.max(result, fastPointer - slowPointer + 1)
}
return result
}