Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm dãy 1 liên tiếp dài nhất trong mảng nhị phân JavaScript

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