हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो केवल संख्याओं की एक सरणी लेता है। फ़ंक्शन को सरणी से तीन ऐसे तत्वों की एक सरणी तैयार करनी चाहिए जो सरणी के किन्हीं तीन तत्वों में से सबसे बड़े उत्पाद उत्पन्न करती हैं। फ़ंक्शन को अंततः उन तीन तत्वों के उत्पाद को वापस करना चाहिए।
उदाहरण के लिए -
यदि इनपुट ऐरे है -
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