Dada una array de enteros positivos. Estamos obligados a escribir un programa para imprimir el producto mínimo de dos números cualesquiera de la array dada.
Ejemplos:
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.
Enfoque simple: un enfoque simple será ejecutar dos bucles anidados para generar todos los pares de elementos posibles y realizar un seguimiento del producto mínimo.
Complejidad de Tiempo: O( n * n)
Espacio Auxiliar: O( 1 )
Mejor enfoque: un enfoque eficiente será ordenar primero la array dada e imprimir el producto de los dos primeros números, la clasificación tomará O (n log n). La respuesta será entonces a[0] * a[1]
Complejidad de tiempo: O( n * log(n))
Espacio auxiliar: O( 1 )
Mejor enfoque: la idea es atravesar linealmente una array dada y realizar un seguimiento de un mínimo de dos elementos. Finalmente retorno producto de dos elementos mínimos.
A continuación se muestra la implementación del enfoque anterior.
C++
// C++ program to calculate minimum // product of a pair #include <bits/stdc++.h> using namespace std; // Function to calculate minimum product // of pair 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 = min(arr[0], arr[1]); int second_min = 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 int main() { int a[] = { 11, 8 , 5 , 7 , 5 , 100 }; int n = sizeof(a) / sizeof(a[0]); cout << printMinimumProduct(a,n); return 0; }
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.
Python3
# Python program to # calculate minimum # product of a pair # Function to calculate # minimum product # of pair def printMinimumProduct(arr,n): # Initialize first and second # minimums. It is assumed that the # array has at least two elements. first_min = min(arr[0], arr[1]) second_min = 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 i in range(2,n): 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 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 pair using 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[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) 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.
PHP
<?php // PHP program to calculate minimum // product of a pair // Function to calculate minimum // product of pair function printMinimumProduct($arr, $n) { // Initialize first and second // minimums. It is assumed that the // array has at least two elements. $first_min = min($arr[0], $arr[1]); $second_min = 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 ($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 Code $a = array(11, 8 , 5 , 7 , 5 , 100); $n = sizeof($a); echo(printMinimumProduct($a, $n)); // This code is contributed by Ajit. ?>
Javascript
<script> // Javascript program to calculate minimum // product of a pair // Function to calculate minimum product // of pair function printMinimumProduct(arr, n) { // Initialize first and second // minimums. It is assumed that the // array has at least two elements. let first_min = Math.min(arr[0], arr[1]); let 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 (let 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 let a = [ 11, 8 , 5 , 7 , 5 , 100 ]; let n = a.length; document.write(printMinimumProduct(a,n)); // This code is contributed by Mayank Tyagi </script>
25
Complejidad temporal: O(n)
Espacio auxiliar: O(1)
Este artículo es una contribución de Raja Vikramaditya . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA