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
Minimum product modulo N possible for any pair from a given range Given three integers L, R, and N, the task is to find the minimum possible value of (i * j) % N, where L ? i < j ? R. Examples: Input: L = 2020, R = 2040, N = 2019Output: 2Explanation: (2020 * 2021) % 2019 = 2 Input: L = 15, R = 30, N = 15Output: 0Explanation: If one of the elements of the pair i
5 min read
Minimum possible sum of prices of a Triplet from the given Array Given an array num[] of N integers where each element is associated with a price given by another array price[], the task is to minimize the sum of price by taking a triplet such that num[i] < num[j] < num[k]. If there is no such triplet then print -1. Examples: Input: num[]={2, 4, 6, 7, 8}, p
12 min read
Java Program to Find minimum sum of factors of number Given a number, find minimum sum of its factors. Examples: Input : 12 Output : 7 Explanation: Following are different ways to factorize 12 and sum of factors in different ways. 12 = 12 * 1 = 12 + 1 = 13 12 = 2 * 6 = 2 + 6 = 8 12 = 3 * 4 = 3 + 4 = 7 12 = 2 * 2 * 3 = 2 + 2 + 3 = 7 Therefore minimum su
2 min read
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