আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা শুধুমাত্র আর্গুমেন্ট হিসাবে পূর্ণসংখ্যার অ্যারে নেয়৷
ফাংশনটি নির্ধারণ করা উচিত যে এমন কোন উপায় আছে যা আমরা অ্যারেটিকে দুটি সাবয়ারেতে বিভক্ত করতে পারি যাতে দুটি সাব্যারেতে উপস্থিত উপাদানগুলির যোগফল সমান হয়। উপাদানগুলিকে সাব্যারেতে বিভক্ত করার সময় আমাদের নিশ্চিত করতে হবে যে মূল অ্যারে থেকে কোনও উপাদান অবশিষ্ট নেই৷
যেমন −
যদি ইনপুট অ্যারে −
হয়const arr = [5, 3, 7, 4, 1, 8, 2, 6];
তারপর আউটপুট −
হওয়া উচিতconst output = true;
কারণ কাঙ্খিত সাবয়ারে হল:[5, 3, 4, 6] এবং [7, 1, 8, 2] উভয়ের যোগফল 18 এর সমান।
উদাহরণ
নিম্নলিখিত কোড -
const arr = [5, 3, 7, 4, 1, 8, 2, 6]; const canPartition = (arr = []) => { const sum = arr.reduce((acc, val) => acc + val); if (sum % 2 !== 0){ return false; }; const target = sum / 2; const array = new Array(target + 1).fill(false); array[0] = true; for (const num of arr) { if (array[target - num]){ return true }; for (let i = target; i >= num; i--) { array[i] = array[i - num]; } } return false; }; console.log(canPartition(arr));
আউটপুট
নিম্নোক্ত কনসোল আউটপুট -
true