हमें दो ऐरे दिए गए हैं, मान लें arr1 और arr2, धनात्मक संख्याओं के। दोनों ऐरे में मानों की संख्या समान है।
हमें एक फंक्शन लिखना है जो उनके एलिमेंट्स के गुणनफल का अधिकतम योग ढूंढता है।
arr1 में प्रत्येक एलिमेंट को arr2 में ठीक एक एलिमेंट से गुणा किया जाना है और इसके विपरीत, जैसे कि दोनों ऐरे का प्रत्येक एलिमेंट ठीक एक बार आता है और उत्पन्न गुणनफल का योग अधिकतम हो।
उदाहरण के लिए: यदि,
arr1 = [5,1,3,4,2] और, arr2 = [8,10,9,7,6]
तो गुणनफल का एक संभावित योग है -
5*6 + 1*7 + 3*9 + 4*10 + 2*8
हालांकि, यह सबसे बड़ा योग नहीं हो सकता।
उदाहरण
const arr1 = [5,1,3,4,2];
const arr2 = [8,10,9,7,6];
const sorter = (a, b) => b - a;
const greatestProduct = (a1, a2) => {
if(a1.length !== a2.length){
return false;
};
const a1Sorted = a1.slice().sort(sorter);
const a2Sorted = a2.slice().sort(sorter);
let res = 0;
for(let i = 0; i < a1.length; i++){
res += (a1Sorted[i] * a2Sorted[i]);
};
return res;
};
console.log(greatestProduct(arr1, arr2));
आउटपुट
कंसोल में आउटपुट -
130