हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एकमात्र तर्क के रूप में संख्याओं की एक सरणी लेता है। फ़ंक्शन को सरणी से ऐसे तीन तत्वों की एक सरणी तैयार करनी चाहिए जो सरणी के किन्हीं तीन तत्वों में सबसे बड़ा गुणनफल देते हैं। फ़ंक्शन को अंत में उन तीन तत्वों का गुणनफल लौटाना चाहिए।
उदाहरण के लिए -
यदि इनपुट सरणी है -
const arr = [-10, 7, 29, 30, 5, -10, -70];
तो आउटपुट होना चाहिए -
const output = 21000
क्योंकि तीन संख्याएं 30, -10, -70 हैं।
हम देख सकते हैं कि सरणी में ऋणात्मक तत्व हो सकते हैं या शायद होंगे। इसलिए, ऐसे मामले में अधिकतम गुणनफल इन दो में से बड़ा होगा -
min1 * min2 * max1 max1 * max2 * max3
इसलिए, हम इसे बस ऐसे हल करेंगे
उदाहरण
निम्नलिखित कोड है -
const arr = [-10, 7, 29, 30, 5, -10, -70];
const threeProduct = (arr = []) => {
const sorter = (a, b) => a - b;
arr.sort(sorter);
let pro1 = 1, pro2 = 1;
let len = arr.length - 1;
for (let i = len; i > len - 3; i--) {
pro1 = pro1 * arr[i];
}
pro2 = arr[0] * arr[1] * arr[len];
return Math.max(pro1, pro2);
}
console.log(threeProduct(arr));आउटपुट
कंसोल पर आउटपुट होगा -
21000