সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি বাইনারি অ্যারে, arr, প্রথম আর্গুমেন্ট হিসাবে এবং একটি সংখ্যা, লক্ষ্য, দ্বিতীয় আর্গুমেন্ট হিসাবে নেয়৷
আমাদের ফাংশন অ্যারে অ্যারে বিদ্যমান সাবয়ারের সংখ্যা গণনা করার কথা, যার উপাদানগুলির যোগফল গণনার সমান। আমাদের অবশেষে এই গণনাটি ফেরত দেওয়া উচিত।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়
ইনপুট
const arr = [1, 0, 1, 0, 1]; const target = 2;
আউটপুট
const output = 4;
আউটপুট ব্যাখ্যা
কারণ কাঙ্খিত সাবয়ারেগুলি হল:
[1,0,1][1,0,1,0] [0,1,0,1] [1,0,1]
উদাহরণ
const arr = [1, 0, 1, 0, 1]; const target = 2; const countSubarrays = (arr = [], target = 1) => { const map = {} let sum = 0 let count = 0 for (const num of arr) { map[sum] = (map[sum] || 0) + 1 sum += num count += map[sum - target] || 0 } return count }; console.log(countSubarrays(arr, target));
আউটপুট
4