Dados dos arreglos ordenados y un número x, encuentra el par cuya suma es más cercana a x y el par tiene un elemento de cada arreglo . Nos dan dos arreglos ar1[0…m-1] y ar2[0..n-1] y un número x, necesitamos encontrar el par ar1[i] + ar2[j] tal que el valor absoluto de (ar1 [i] + ar2[j] – x) es mínimo. Ejemplo:
Input: ar1[] = {1, 4, 5, 7}; ar2[] = {10, 20, 30, 40}; x = 32 Output: 1 and 30 Input: ar1[] = {1, 4, 5, 7}; ar2[] = {10, 20, 30, 40}; x = 50 Output: 7 and 40
C#
// C# program to find closest pair in // an array using System; class GFG { // ar1[0..m-1] and ar2[0..n-1] are two // given sorted arrays/ and x is given // number. This function prints the // pair from both arrays such that the // sum of the pair is closest to x. static void printClosest(int[] ar1, int[] ar2, int m, int n, int x) { // Initialize the diff between pair // sum and x. int diff = int.MaxValue; // res_l and res_r are result // indexes from ar1[] and ar2[] // respectively int res_l = 0, res_r = 0; // Start from left side of ar1[] // and right side of ar2[] int l = 0, r = n - 1; while (l < m && r >= 0) { // If this pair is closer to // x than the previously // found closest, then update // res_l, res_r and diff if (Math.Abs(ar1[l] + ar2[r] - x) < diff) { res_l = l; res_r = r; diff = Math.Abs(ar1[l] + ar2[r] - x); } // If sum of this pair is more // than x, move to smaller // side if (ar1[l] + ar2[r] > x) r--; else // move to the greater side l++; } // Print the result Console.Write("The closest pair is [" + ar1[res_l] + ", " + ar2[res_r] + "]"); } // Driver program to test above functions public static void Main() { int[] ar1 = { 1, 4, 5, 7 }; int[] ar2 = { 10, 20, 30, 40 }; int m = ar1.Length; int n = ar2.Length; int x = 38; printClosest(ar1, ar2, m, n, x); } } // This code is contributed by nitin mittal.
The closest pair is [7, 30]
Complejidad de tiempo: O(m + n), donde m y n representan el tamaño de las dos arrays dadas.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.
¡ Consulte el artículo completo sobre Encuentre el par más cercano de dos arrays ordenadas para obtener más detalles!
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