Saltar al contenido

Proyecto: encuentra repetidos rápido

JavaScript · Unidad 21: Complejidad

Saber si una lista trae repetidos se puede hacer de dos formas: comparando todas las parejas, O(n²), o anotando lo que ya viste en un Set, O(n).

Vas a escribir la segunda.

const ns = [4, 7, 4];
const vistos = new Set();
let hay = false;
for (const x of ns) {
  if (vistos.has(x)) {
    hay = true;
  }
  vistos.add(x);
}
console.log(hay);

Imprime

true

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Predice la salida

    Esta es la forma lenta: cuenta las comparaciones con 6 datos. ¿Qué imprime?

  2. 2. Completa el código

    Completa para que avise solo si el valor ya había salido antes.

  3. 3. Escribe el código

    Escribe hayRepetido(items): regresa true si algún valor aparece dos veces y false si todos son distintos. Recorre el arreglo una sola vez y apóyate en el Set. Con el arreglo vacío es false.

  4. 4. Escribe el código

    Ahora primerRepetido(items): en vez de true, regresa el primer valor que ya había salido antes; si todos son distintos, regresa null. Es el mismo recorrido, cambiando lo que regresas.

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →