সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি বাইনারি অ্যারে (একটি অ্যারে যা শুধুমাত্র 0 এবং 1 নিয়ে গঠিত), arr, একমাত্র যুক্তি হিসাবে নেয়। আমাদের ফাংশনটি এই অ্যারেতে সর্বোচ্চ সংখ্যক পরপর 1 সেকে খুঁজে পাওয়া উচিত যদি আমরা সর্বাধিক এক 0 ফ্লিপ করতে পারি।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const arr = [1, 0, 1, 1, 0];
তারপর আউটপুট −
হওয়া উচিতconst output = 4;
আউটপুট ব্যাখ্যা
যদি আমরা অ্যারেতে সূচক 1 এ 0 ফ্লিপ করি, তাহলে আমরা 4 টানা 1s পাব।
উদাহরণ
এর জন্য কোড হবে −
const arr = [1, 0, 1, 1, 0];
const findMaximumOne = (nums = []) => {
let count = 0;
let first = -1;
let i =0, j = 0;
let res = -Infinity;
while(j < nums.length){
if(nums[j] === 1){
res = Math.max(res, j-i+1);
}else{
count++;
if(count==2){
i = first + 1;
count--;
};
first = j;
};
j++;
};
return res;
};
console.log(findMaximumOne(arr)); আউটপুট
এবং কনসোলে আউটপুট হবে −
4