पूर्णांकों की सरणी दी गई है। किन्हीं तीन तत्वों (ट्रिपलेट) का अधिकतम गुणनफल खोजें।
सरल O(n^3) दृष्टिकोण: सभी ट्रिपलेट्स जांचें। बड़ी सरणी के लिए सॉर्ट करके सबसे बड़े तीन या दो सबसे छोटे (नकारात्मक) और सबसे बड़ा धनात्मक जांचें।
उदाहरण: {10, 3, 5, 6, 20} → अधिकतम गुणनफल 1200 (10, 6, 20)।
C++ कार्यान्वयन
#include <bits/stdc++.h>
using namespace std;
int maxProduct(int arr[], int n) {
if (n < 3) return -1;
int max_product = INT_MIN;
for (int i = 0; i < n - 2; i++)
for (int j = i + 1; j < n - 1; j++)
for (int k = j + 1; k < n; k++)
max_product = max(max_product, arr[i] * arr[j] * arr[k]);
return max_product;
}
int main() {
int arr[] = {10, 3, 5, 6, 20};
int n = sizeof(arr) / sizeof(arr[0]);
int max = maxProduct(arr, n);
if (max == -1) cout << "No Triplet Exists";
else cout << "Maximum product is " << max;
return 0;
}
आउटपुट
Maximum product is 1200