Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาจำนวนสูงสุดของ 1 ติดต่อกันในอาร์เรย์ไบนารีใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ไบนารี (อาร์เรย์ที่ประกอบด้วย 0 หรือ 1 เท่านั้น) เป็นอาร์กิวเมนต์เดียว

ฟังก์ชันควรค้นหาความยาวของอาร์เรย์ย่อยที่ต่อเนื่องกันของอาร์เรย์ที่ประกอบด้วย 1 เท่านั้นและส่งคืน

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตเป็น −

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

จากนั้นผลลัพธ์ควรเป็น −

const output = 4;

เราจะใช้อัลกอริธึมหน้าต่างบานเลื่อนเพื่อจับภาพหน้าต่างที่ใหญ่ที่สุด (ขนาดใหญ่ที่สุด) ที่ประกอบด้วย 1 อันเท่านั้น

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

4