Es un problema fácil cuya descripción es:
Dada una matriz de números de tamaño n, devuelve el elemento mayoritario.
El elemento mayoritario es el elemento que aparece más de ⌊n / 2⌋ veces. Puedes asumir que el elemento mayoritario siempre existe en la matriz.
Ejemplo 1:
Entrada: números = [3,2,3]
Salida: 3Ejemplo 2:
Entrada: números = [2,2,1,1,1,2,2]
Salida: 2Restricciones:
n == números.longitud
1 -109
A primera vista, pensarías en hacer un mapa y luego reunir el que muestra más.
Pensándolo bien, si pudieras ordenar y obtener el que aparece más, eso sería suficiente.
Y con eso hay una manera aún más sencilla. Si lees atentamente la descripción entenderás que un elemento mayoritario es aquel que aparece en más de la mitad del array.
Con eso en mente, si lo ordenaras y tomaras el índice del medio, eso resolvería el problema:
class Solution { public int majorityElement(int[] nums) { // sort Arrays.sort(nums); // if by majority element it means that appears more than half of nums size // then picking the middle element would be the one that's a majority element return nums[nums.length / 2]; } }
Tiempo de ejecución: 4 ms, más rápido que el 54,53 % de los envíos en línea de Java para Majority Element.
Uso de memoria: 53,5 MB, menos del 9,23% de los envíos en línea de Java para Majority Element.
—
¡Eso es todo! Si hay algo más que discutir, no dudes en dejar un comentario. Si me perdí algo, házmelo saber para poder actualizarlo en consecuencia.
¡Hasta la próxima publicación! :)
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