Tutorial JAVA
Archivo Java
El problema de encontrar la mediana de dos matrices ordenadas es una pregunta clásica de una entrevista de codificación. El desafío es encontrar la mediana de manera eficiente, con una complejidad temporal de O (log (min (m, n))), donde myn son los tamaños de las dos matrices. En este artículo, analizaremos una solución Java que emplea búsqueda binaria para lograr esta eficiencia.
Dadas dos matrices ordenadas nums1 y nums2, encuentre la mediana de las dos matrices ordenadas. La complejidad general del tiempo de ejecución debe ser O(log(min(m, n))), donde myn son los tamaños de las dos matrices.
Para resolver este problema, utilizamos un enfoque de búsqueda binaria en la más pequeña de las dos matrices. El objetivo es dividir ambas matrices de modo que la mitad izquierda contenga todos los elementos menores o iguales que los elementos de la mitad derecha. Aquí tienes una explicación paso a paso:
Aquí hay una implementación Java detallada de la solución:
public class MedianOfTwoSortedArrays { public double findMedianSortedArrays(int[] nums1, int[] nums2) { // Ensure nums1 is the smaller array if (nums1.length > nums2.length) { int[] temp = nums1; nums1 = nums2; nums2 = temp; } int x = nums1.length; int y = nums2.length; int low = 0, high = x; while (low minY) { high = partitionX - 1; } else { low = partitionX 1; } } throw new IllegalArgumentException("Input arrays are not sorted"); } public static void main(String[] args) { MedianOfTwoSortedArrays solution = new MedianOfTwoSortedArrays(); int[] nums1 = {1, 3}; int[] nums2 = {2}; System.out.println("Median: " solution.findMedianSortedArrays(nums1, nums2)); // Output: 2.0 int[] nums1_2 = {1, 2}; int[] nums2_2 = {3, 4}; System.out.println("Median: " solution.findMedianSortedArrays(nums1_2, nums2_2)); // Output: 2.5 } }
Este enfoque de búsqueda binaria proporciona una solución eficiente para encontrar la mediana de dos matrices ordenadas. Al aprovechar la búsqueda binaria en la matriz más pequeña, la solución logra una complejidad temporal de O(log(min(m, n))), lo que la hace adecuada para matrices de entrada grandes.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3