𝗟𝗲𝗲𝘁𝗰𝗼𝗱𝗲 𝟭𝟱𝟬 | 𝗗𝗶𝗮 𝟰: 𝗘𝗹𝗲𝗺𝗲𝗻𝘁𝗼 𝗠𝗮𝗷𝗼𝗿𝗶𝘁𝗮𝗿𝗶𝗼

Leetcode 169 te pide encontrar el elemento mayoritario en un arreglo. El elemento mayoritario aparece más de n / 2 veces. Asumimos que siempre existe.

Puedes resolver esto de dos maneras.

Enfoque 1: El método del Mapa

Este método utiliza un Mapa para contar cuántas veces aparece cada número.

Complejidad:

Enfoque 2: Algoritmo de votación de Boyer-Moore

Esta es una forma optimizada de resolver el problema utilizando memoria constante.

Imagina que los números son equipos opuestos. Cada vez que un número se encuentra con un número diferente, se anulan entre sí. Dado que el elemento mayoritario aparece más de la mitad de las veces, siempre será el último en quedar en pie.

Cómo funciona:

Complejidad:

Por qué es importante:

Ambos métodos tienen una complejidad de tiempo de O(n). Sin embargo, el segundo enfoque utiliza mucha menos memoria. No necesita un Mapa. Esto lo hace mejor para conjuntos de datos grandes.

Fuente: https://dev.to/afuji/leetcode-150-day-4-majority-element-naive-vs-optimized-eo6