সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি সংখ্যার অ্যারে arr1 এবং arr2 নেবে, যাদের দৈর্ঘ্য সমান।
ফাংশনটি প্রথম অ্যারে arr1-এর উপাদানগুলোর ক্রম বদলে (shuffle) এমনভাবে করবে যাতে এর সর্বোচ্চ সংখ্যক উপাদান দ্বিতীয় অ্যারে arr2-এর সংশ্লিষ্ট উপাদান থেকে বড় হয়। ফাংশনটি শাফল করা অ্যারে ফেরত দেবে।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
const arr1 = [3, 5, 12, 19]; const arr2 = [2, 9, 3, 12];
আউটপুট
const output = [3, 12, 5, 19];
আউটপুট ব্যাখ্যা
শাফল করার আগে arr1-এর ৩টি সংশ্লিষ্ট উপাদান arr2-এর চেয়ে বড় ছিল, কিন্তু শাফল করা অ্যারেতে সব ৪টি উপাদান বড়।
নিচে কোডটি দেওয়া হল:
উদাহরণ
const arr1 = [3, 5, 12, 19];
const arr2 = [2, 9, 3, 12];
const maximiseArray = (arr1 = [], arr2 = []) => {
arr1.sort((a, b) => b - a);
const indexes = arr2.map((v, index) => index).sort((a, b) => arr2[b] - arr2[a]);
const res = [];
for (let i = 0; i < indexes.length; i++) {
const index = indexes[i];
res[index] = arr1[0] > arr2[index] ? arr1.shift() : arr1.pop();
}
return res;
};
console.log(maximiseArray(arr1, arr2));
আউটপুট
[3, 12, 5, 19]