Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm số lượng tối đa của 1 liên tiếp trong một mảng nhị phân trong JavaScript

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một mảng nhị phân (một mảng chỉ bao gồm 0 hoặc 1) làm đối số duy nhất.

Hàm sẽ tìm độ dài của mảng con liên tiếp của mảng chỉ bao gồm 1 và trả về.

Ví dụ -

Nếu mảng đầu vào là -

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

Sau đó, đầu ra phải là -

const output = 4;

Chúng tôi sẽ sử dụng thuật toán cửa sổ trượt để chụp cửa sổ lớn nhất (kích thước lớn nhất) chỉ bao gồm 1.

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

4