সমস্যা:
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি বাইনারি অ্যারে, অ্যারে, (একটি অ্যারে যা শুধুমাত্র 0 বা 1 নিয়ে গঠিত) নেয়। আমাদের ফাংশনটি 1 এবং 0 এর একই সংখ্যা নিয়ে গঠিত অ্যারে থেকে সংলগ্ন সাবয়ারের দৈর্ঘ্য ফিরিয়ে দেবে৷
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const arr = [1, 0, 0, 1, 0, 1, 0, 0];
তারপর আউটপুট −
হওয়া উচিতconst output = 6;
আউটপুট ব্যাখ্যা
অ্যারের প্রথম 6টি উপাদান হল 1, 0, 0, 1, 0, 1 (তিন 1s এবং তিন 0s)
উদাহরণ
এর জন্য কোড হবে −
const arr = [1, 0, 0, 1, 0, 1, 0, 0]; const findMaxLength = (arr = []) => { const { length } = arr; if (length < 2){ return 0 }; const map = new Map(); map.set(0, -1); let sum = 0; let max = 0; for (var i = 0; i < length; i++) { sum += arr[i] === 0 ? -1 : 1; if (map.has(sum)) { max = Math.max(max, i - map.get(sum)); } else { map.set(sum, i); }; }; return max; }; console.log(findMaxLength(arr));
কোড ব্যাখ্যা
এখানে, আমরা 0 কে -1 এবং 1 কে 1 হিসাবে ভেবেছিলাম, এবং বিভিন্ন উইন্ডোর জন্য যোগফল গণনা করেছি, যখন যোগফল 0 হয়, আমরা জানতাম যে সাব্যারেতে অবশ্যই 0 এবং 1 এর একই সংখ্যা থাকতে হবে।
আউটপুট
এবং কনসোলে আউটপুট হবে −
6