Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Java Program for Minimum product pair an array of positive Integers

  • Last Updated : 13 Jan, 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] 
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. 
 

Java




// Java program to calculate minimum
// product of a pair
import 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[0], arr[1]);
        int second_min = Math.max(arr[0], arr[1]);
       
        // 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.

Output: 
 

25

Time Complexity: O(n) 
Auxiliary Space: O(1)
Please refer complete article on Minimum product pair an array of positive Integers for more details!


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!