সমস্যা
আমাদেরকে একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি বাইনারি অ্যারে (অ্যারে যেটিতে শুধুমাত্র 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