Viết hàm tìm độ dài subarray liên tiếp chỉ chứa 1 trong mảng nhị phân (0/1). Dùng sliding window.
Ví dụ: [1,0,1,1,1,0,1,0,1,1,1,1,0,1] → 4.
Ví dụ
const arr = [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1];
const findMaxConsecutiveOnes = (arr = []) => {
let left = 0, right = 0, 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));
Kết quả
4