हमें एक JavaScript फ़ंक्शन लिखना है जो पहली और एकमात्र आर्गुमेंट के रूप में पूर्णांकों की एक सरणी लेता है।
फ़ंक्शन को सरणी के किन्हीं दो तत्वों को गुणा करके प्राप्त किए जा सकने वाले अधिकतम गुणनफल को ढूंढना चाहिए। हमारे लिए शर्त यह है कि हमें यह रैखिक समय और स्थिर स्थान में करना है।
उदाहरण
यदि इनपुट सरणी है:
const arr = [3, 9, 2, 1, 0];
तो आउटपुट होना चाहिए:
const output = 27;
क्योंकि यह सबसे बड़ा गुणनफल है और इसे 3 और 9 को गुणा करके प्राप्त किया जा सकता है।
कोड उदाहरण
const arr = [3, 9, 2, 1, 0];
const maxPairProduct = (arr = []) => {
let c = Infinity, d = c;
let a = -Infinity - 1, b = a;
for (const n of arr) {
if(n >= a){
b = a;
a = n;
}else if(n >= b){
b = n;
};
if(n <= d){
c = d;
d = n;
}else if(n <= c){
c = n;
};
};
return Math.max(a * b, c * d);
};
console.log(maxPairProduct(arr));
आउटपुट
27