আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে পূর্ণসংখ্যার অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি পূর্ণসংখ্যা নেয়৷
ফাংশনটি পরীক্ষা করে দেখতে হবে যে আমরা থিওরিজিনাল অ্যারে থেকে n (দ্বিতীয় আর্গুমেন্ট) সাবয়ারে তৈরি করতে পারি কি না যাতে সমস্ত সাবয়ারের সমান যোগফল থাকে৷
উদাহরণস্বরূপ -
যদি ইনপুট −
হয়const arr = [4, 3, 2, 3, 5, 2, 1]; const num = 4;
আউটপুটটি সত্য হওয়া উচিত কারণ সাবয়ারেগুলি হল:[5], [1, 4], [2, 3], [2, 3] সকলের সমষ্টি 5 এর সমান।
উদাহরণ
নিম্নলিখিত কোড -
const arr = [4, 3, 2, 3, 5, 2, 1]; const num = 4; const canFormSubarray = (arr = [], num) => { const total = arr.reduce((sum, num) => sum + num, 0); if (total % num !== 0) { return false; } const target = total / num; const visited = new Array(arr.length).fill(false); const canPartition = (start, numberOfSubsets, currentSum) => { if (numberOfSubsets === 1) { return true; } if (currentSum === target) { return canPartition(0, numberOfSubsets - 1, 0); }; for (let i = start; i < arr.length; i++) { if (!visited[i]) { visited[i] = true; if (canPartition(i + 1, numberOfSubsets, currentSum + arr[i])) { return true; } visited[i] = false; }; }; return false; }; return canPartition(0, num, 0); }; console.log(canFormSubarray(arr, num));
আউটপুট
নিম্নোক্ত কনসোল আউটপুট -
true