Minimum product pair an array of positive Integers

• Difficulty Level : Easy
• Last Updated : 02 Mar, 2021

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.

Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

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 * a
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++

 // C++ program to calculate minimum// product of a pair#include using namespace std; // Function to calculate minimum product// of pairint printMinimumProduct(int arr[], int n){    // Initialize first and second    // minimums. It is assumed that the    // array has at least two elements.    int first_min = min(arr, arr);    int second_min = max(arr, arr);     // Traverse remaining array and keep    // track of two minimum elements (Note    // that the two minimum elements may    // be same if minimum element appears    // more than once)    // more than once)    for (int i=2; i

Java

 // Java program to calculate minimum// product of a pairimport java.util.*; class GFG {         // Function to calculate minimum product    // of pair    static int printMinimumProduct(int arr[], int n)    {        // Initialize first and second        // minimums. It is assumed that the        // array has at least two elements.        int first_min = Math.min(arr, arr);        int second_min = Math.max(arr, arr);              // Traverse remaining array and keep        // track of two minimum elements (Note        // that the two minimum elements may        // be same if minimum element appears        // more than once)        // more than once)        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;    }         /* Driver program to test above function */    public static void main(String[] args)    {        int a[] = { 11, 8 , 5 , 7 , 5 , 100 };        int n = a.length;        System.out.print(printMinimumProduct(a,n));          }} // This code is contributed by Arnav Kr. Mandal.

Python3

 # Python program to# calculate minimum# product of a pair # Function to calculate# minimum product# of pairdef printMinimumProduct(arr,n):     # Initialize first and second    # minimums. It is assumed that the    # array has at least two elements.    first_min = min(arr, arr)    second_min = max(arr, arr)      # Traverse remaining array and keep    # track of two minimum elements (Note    # that the two minimum elements may    # be same if minimum element appears    # more than once)    # more than once)    for i in range(2,n):              if (arr[i] < first_min):                    second_min = first_min            first_min = arr[i]                 elif (arr[i] < second_min):            second_min = arr[i]         return first_min * second_min # Driver code a= [ 11, 8 , 5 , 7 , 5 , 100 ]n = len(a) print(printMinimumProduct(a,n)) # This code is contributed# by Anant Agarwal.

C#

 // C# program to calculate minimum// product of a pairusing System; class GFG {         // Function to calculate minimum    // product of pair    static int printMinimumProduct(int []arr,                                       int n)    {                 // Initialize first and second        // minimums. It is assumed that        // the array has at least two        // elements.        int first_min = Math.Min(arr,                                    arr);                                             int second_min = Math.Max(arr,                                    arr);             // Traverse remaining array and        // keep track of two minimum        // elements (Note that the two        // minimum elements may be same        // if minimum element appears        // more than once)        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;    }         /* Driver program to test above    function */    public static void Main()    {        int []a = { 11, 8 , 5 , 7 ,                            5 , 100 };        int n = a.Length;                 Console.WriteLine(            printMinimumProduct(a, n));    }} // This code is contributed by vt_m.



Javascript



Output:

25

Time Complexity: O(n)
Auxiliary Space: O(1)