Maximum Product of Three Numbers in C++



Suppose we have an integer array; we have to find three numbers whose product is maximum then return the maximum product.

So, if the input is like [1,1,2,3,3], then the output will be 18, as the three elements are [2,3,3].

To solve this, we will follow these steps −

  • sort the array nums

  • l := size of nums

  • a := nums[l - 1], b := nums[l - 2], c := nums[l - 3], d := nums[0], e := nums[1]

  • return maximum of a * b * c and d * e * a

Example 

Let us see the following implementation to get better understanding −

 Live Demo

#include <bits/stdc++.h> using namespace std; class Solution { public:    int maximumProduct(vector<int>& nums) {       sort(nums.begin(), nums.end());       int l = nums.size();       int a = nums[l - 1], b = nums[l - 2], c = nums[l - 3], d = nums[0], e = nums[1];       return max(a * b * c, d * e * a);    } }; main(){    Solution ob;    vector<int> v = {1,1,2,3,3};    cout << (ob.maximumProduct(v)); }

Input

{1,1,2,3,3}

Output

18
Updated on: 2020-06-11T12:04:32+05:30

807 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements