0Pricing
Coding Interview Prep · Lección

Elimine duplicados en el propio array

Use un par de punteros, uno lento y otro rápido

Elimine duplicados en el propio array es una lección gratuita de Coding Interview Prep en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Coding Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Coding Interview Prep incluye 4 lecciones en total.

Eliminar duplicados in situ

Dado un arreglo ordenado, conserve una copia de cada valor sin usar otro arreglo. Hacerlo in situ ahorra memoria y es una pregunta clásica de las entrevistas. 🧹

Por qué ayuda que esté ordenado

Cuando el arreglo está ordenado, cada duplicado se encuentra justo al lado de su equivalente. Por eso solo necesita comparar vecinos, nunca todo el arreglo.

Dos funciones, dos punteros

Use un puntero slow que marque el último valor conservado y un puntero fast que recorra el arreglo buscando algo nuevo.

slow = 0
fast = 1

El puntero slow escribe

Considere slow como la posición de escritura: todo lo que está en esa posición o antes ya está limpio y es único.

El puntero fast lee

El puntero fast solo lee hacia delante. Avanza rápidamente y solo avisa a slow cuando encuentra un valor que aún no se ha conservado.

Omita las repeticiones

Si a[fast] es igual a a[slow], es una repetición, así que no haga nada salvo avanzar fast. El duplicado se omite discretamente.

for fast in range(1, n):
    if a[fast] == a[slow]:
        continue

Ha encontrado algo nuevo

Cuando a[fast] es diferente, avance slow y copie allí el nuevo valor. Así sobrescribe los duplicados antiguos con datos únicos nuevos.

    else:
        slow += 1
        a[slow] = a[fast]

La respuesta es la longitud

Después del recorrido, slow + 1 es la cantidad de valores únicos, todos agrupados al principio del arreglo.

return slow + 1

Ignore la parte final

Todo lo que quede después del prefijo único son datos sobrantes. El problema solo considera los primeros elementos slow + 1, así que deje intacta la parte final.

Tenga en cuenta el arreglo vacío

Un arreglo vacío tiene cero valores únicos. Compruebe n == 0 antes de comenzar para no leer más allá del final.

if n == 0:
    return 0

Un recorrido, sin espacio adicional

Este patrón de punteros slow y fast se ejecuta en tiempo O(n) y usa O(1) de espacio adicional, exactamente lo que exigen los límites de memoria estrictos.

Comprobación rápida

Está eliminando duplicados in situ en un arreglo ordenado con punteros slow y fast.

Repaso

En un arreglo ordenado, un par de punteros lento-rápido elimina los duplicados en un recorrido O(n) sin espacio adicional y devuelve slow + 1 como cantidad de valores únicos. 🎉

Preguntas frecuentes

¿La lección «Elimine duplicados en el propio array» es gratis?

Sí — el texto completo de «Elimine duplicados en el propio array» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Coding Interview Prep, actualiza a CoddyKit PRO. El curso de Coding Interview Prep incluye 4 lecciones en total.

¿Qué aprenderé en «Elimine duplicados en el propio array»?

Use un par de punteros, uno lento y otro rápido Practicas Coding Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Coding Interview Prep?

No se requiere experiencia previa. Coding Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Elimine duplicados en el propio array»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Coding Interview Prep?

Sí. Cada lección de Coding Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Dos punteros en un array ordenado
  2. Encuentre un par con una suma dada
  3. Elimine duplicados en el propio array
  4. Combine dos secuencias ordenadas
← Volver a Coding Interview Prep