Maximum product of a triplet (subsequence of size 3) in array in C++


In this tutorial, we will be discussing a program to find maximum product of a triplet (subsequence of size 3) in array.

For this we will be provided with an array of integers. Our task is to find the triplet of elements in that array with the maximum product

Example

 Live Demo

#include <bits/stdc++.h>
using namespace std;
//finding the maximum product
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;
}

Output

Maximum product is 1200

Updated on: 09-Sep-2020

58 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements