সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি সংখ্যার অ্যারে arr1 এবং arr2 প্রথম ও দ্বিতীয় আর্গুমেন্ট হিসেবে নেবে।
arr1 এবং arr2-এর উপাদানগুলোর যোগফল ভিন্ন। ফাংশনটি প্রথম অ্যারেতে থেকে একটি উপাদান বেছে দ্বিতীয় অ্যারেতে ঠেলবে এবং দ্বিতীয় অ্যারেতে থেকে একটি উপাদান বেছে প্রথম অ্যারেতে ঠেলবে যাতে দুটি অ্যারের উপাদানগুলোর যোগফল সমান হয়। ফাংশনটি এই দুটি উপাদানের অ্যারে ফেরত দেবে।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
const arr1 = [1, 2, 5]; const arr2 = [2, 4];
আউটপুট
const output = [5, 4];
আউটপুট ব্যাখ্যা
কারণ যদি ৫ কে arr1-থেকে বাদ দিয়ে arr2-তে দিই এবং ৪ কে arr2-থেকে বাদ দিয়ে arr1-তে দিই, তবে দুটি অ্যারের যোগফল সমান হবে (৭)।
নিচে কোডটি দেওয়া হল:
উদাহরণ
const arr1 = [1, 2, 5];
const arr2 = [2, 4];
const balanceArrays = (arr1 = [], arr2 = []) => {
const sumA = arr1.reduce((acc, v) => acc + v, 0);
const sumB = arr2.reduce((acc, v) => acc + v, 0);
const difference = (sumA + sumB) / 2 - sumA;
const map = arr2.reduce((acc, v) => {
acc[v] = true;
return acc;
}, {});
for (let i = 0; i < arr1.length; i++) {
if (map[arr1[i] + difference] === true) {
return [arr1[i], arr1[i] + difference];
}
}
return [];
};
console.log(balanceArrays(arr1, arr2));
আউটপুট
[5, 4]