C++ Program for Minimum product pair an array of positive Integers
Last Updated :
02 Aug, 2022
Given an array of positive integers. We are required to write a program to print the minimum product of any two numbers of the given array.
Examples:
Input : 11 8 5 7 5 100
Output : 25
Explanation : The minimum product of any
two numbers will be 5 * 5 = 25.
Input : 198 76 544 123 154 675
Output : 7448
Explanation : The minimum product of any
two numbers will be 76 * 123 = 7448.
Simple Approach : A simple approach will be to run two nested loops to generate all possible pair of elements and keep track of the minimum product.
Time Complexity: O( n * n)
Auxiliary Space: O( 1 )
Better Approach: An efficient approach will be to first sort the given array and print the product of first two numbers, sorting will take O(n log n). Answer will be then a[0] * a[1] .
C++
#include <bits/stdc++.h>
using namespace std;
int printMinimumProduct( int arr[], int n)
{
sort(arr,arr+n);
return arr[0] * arr[1];
}
int main()
{
int a[] = { 11, 8 , 5 , 7 , 5 , 100 };
int n = sizeof (a) / sizeof (a[0]);
cout << printMinimumProduct(a,n);
return 0;
}
|
Time Complexity: O( n * log(n))
Auxiliary Space: O( 1 )
Best Approach: The idea is linearly traverse given array and keep track of minimum two elements. Finally return product of two minimum elements.
Below is the implementation of above approach.
C++
#include <bits/stdc++.h>
using namespace std;
int printMinimumProduct( int arr[], int n)
{
int first_min = min(arr[0], arr[1]);
int second_min = max(arr[0], arr[1]);
for ( int i=2; i<n; i++)
{
if (arr[i] < first_min)
{
second_min = first_min;
first_min = arr[i];
}
else if (arr[i] < second_min)
second_min = arr[i];
}
return first_min * second_min;
}
int main()
{
int a[] = { 11, 8 , 5 , 7 , 5 , 100 };
int n = sizeof (a) / sizeof (a[0]);
cout << printMinimumProduct(a,n);
return 0;
}
|
Time Complexity: O(n)
Auxiliary Space: O(1) Please refer complete article on Minimum product pair an array of positive Integers for more details!
Share your thoughts in the comments
Please Login to comment...