Java Program for Minimum product pair an array of positive Integers
Last Updated :
30 Mar, 2023
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 : 9348
Explanation : The minimum product of any
two numbers will be 76 * 123 = 9348.
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.
Java
// Java program to find minimum product of any two numbers in an array
import java.util.Arrays;
public class MinProductOfTwo {
// Driver Code
public static void main(String[] args) {
int[] arr = { 11, 8, 5, 7, 5, 100 };
int n = arr.length;
// Function Call
int minProduct = printMinimumProduct(arr);
System.out.println(minProduct);
}
public static int printMinimumProduct(int[] arr) {
int minProduct = Integer.MAX_VALUE;
// loop through all possible pairs of array elements and find minimum product
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
int product = arr[i] * arr[j];
// if minProduct is greater than the current product of 2 elements
// then update the minProduct with that one
if (product < minProduct) {
minProduct = product;
}
}
}
// return minimum product
return minProduct;
}
}
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]
Java
// Java program to find the minimum product of any two
// numbers in an array
import java.util.Arrays;
public class GFG {
// Function to find the minimum product of any two
// numbers in an array
static long findMinimumProduct(int[] arr) {
int n = arr.length;
// sort the array
Arrays.sort(arr);
// return the product of first two
// numbers
return (long)arr[0] * arr[1];
}
// Driver code
public static void main(String[] args) {
// Input array
int[] arr = { 11, 8 , 5 , 7 , 5 , 100 };
// Function Call
long minProduct = findMinimumProduct(arr);
// Printing final answer
System.out.println(minProduct);
}
}
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.
Time Complexity: O(n)
Auxiliary Space: O(1) Please refer complete article on Minimum product pair an array of positive Integers for more details!
Similar Reads
Java Program for Minimum product subset of an array Given an array a, we have to find the minimum product possible with the subset of elements present in the array. The minimum product can be a single element also. Examples: Input : a[] = { -1, -1, -2, 4, 3 } Output : -24 Explanation : Minimum product will be ( -2 * -1 * -1 * 4 * 3 ) = -24 Input : a[
3 min read
Java Program to Minimize the Maximum Element of an Array Given two integers N and K. Create an array of N positive integers such that the sum of all elements of the array is divisible by K and the maximum element in the array is the minimum possible. You have to find the Maximum element of that array. Example: Input : N=5, K=11 Output : 3 Explanation : We
4 min read
Java Program for Number of pairs with maximum sum Write a java program for a given array arr[], count number of pairs arr[i], arr[j] such that arr[i] + arr[j] is maximum and i < j.Example: Input : arr[] = {1, 1, 1, 2, 2, 2}Output: 3Explanation: The maximum possible pair sum where i<j is 4, which is given by 3 pairs, so the answer is 3 the pai
4 min read
Java Program to Find closest number in array Given an array of sorted integers. We need to find the closest value to the given number. Array may contain duplicate values and negative numbers. Examples: Input : arr[] = {1, 2, 4, 5, 6, 6, 8, 9} Target number = 11 Output : 9 9 is closest to 11 in given array Input :arr[] = {2, 5, 6, 7, 8, 8, 9};
4 min read
Java Program to Find k pairs with smallest sums in two arrays Given two integer arrays arr1[] and arr2[] sorted in ascending order and an integer k. Find k pairs with smallest sums such that one element of a pair belongs to arr1[] and other element belongs to arr2[]Examples: Input : arr1[] = {1, 7, 11} arr2[] = {2, 4, 6} k = 3 Output : [1, 2], [1, 4], [1, 6] E
3 min read