সমস্যা:
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি বাইনারি অ্যারে arr (শুধু ০ বা ১) ইনপুট হিসেবে নেবে। ফাংশনটি সাবঅ্যারেটির দৈর্ঘ্য রিটার্ন করবে যেটিতে ০ ও ১ এর সংখ্যা সমান থাকে।
উদাহরণ:
const arr = [1, 0, 0, 1, 0, 1, 0, 0];
আউটপুট হবে:
const output = 6;
আউটপুট ব্যাখ্যা
প্রথম ৬টি উপাদান: 1, 0, 0, 1, 0, 1 (তিনটি ১ ও তিনটি ০)।
উদাহরণ
কোডটি নিচের মতো (প্রিফিক্স সাম ও ম্যাপ):
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)); কোড ব্যাখ্যা
এখানে ০ কে -1 এবং ১ কে ১ ধরা হয়েছে, এবং ভিন্ন উইন্ডোর জন্য সাম গণনা করা হয়েছে। যখন সাম ০ হয়, তখন সাবঅ্যারেতে ০ ও ১ সমান সংখ্যক থাকে বলে বুঝা যায়।
আউটপুট
কনসোলে আউটপুট:
6