সমস্যা
আমাদেরকে একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি বাইনারি অ্যারে (অ্যারে যেটিতে শুধুমাত্র 0 বা 1 থাকে), প্রথম আর্গুমেন্ট হিসাবে arr এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি সংখ্যা, num হয়৷
আমরা অ্যারেতে উপস্থিত সর্বাধিক 0s সংখ্যা 1s এ পরিবর্তন করতে পারি, এবং আমাদের ফাংশনটি দীর্ঘতম (সংলগ্ন) সাবয়ারের দৈর্ঘ্য ফিরিয়ে দেবে যাতে এই পরিবর্তনগুলি করার পরে শুধুমাত্র 1s থাকে৷
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const arr = [1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0]; const num = 2;
তারপর আউটপুট −
হওয়া উচিতconst output = 6;
আউটপুট ব্যাখ্যা
কারণ দুটি শূন্যকে 1 এ পরিবর্তন করার পর, অ্যারের শেষ 6টি উপাদান 1 হবে।
উদাহরণ
এর জন্য কোড হবে −
const arr = [1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0];
const num = 2;
const longestOnes = (arr = [], num = 1) => {
let max = 0;
let left = 0;
let curr = num;
for(let right = 0; right < arr.length; right++){
if(arr[right] === 0){
curr -= 1;
};
while(curr < 0){
if(arr[left] === 0){
curr += 1;
};
left += 1;
};
max = Math.max(max, right - left + 1);
};
return max;
};
console.log(longestOnes(arr, num)); আউটপুট
এবং কনসোলে আউটপুট হবে −
6