Proyecto: encuentra repetidos rápido
Python · Unidad 22: Complejidad
- Plan completo
- Python
- Proyecto
- 3 ejercicios
Para saber si una lista tiene repetidos, la forma lenta compara cada número con todos los de adelante: con 4 números son 6 comparaciones, con 1000 son casi medio millón.
Con un conjunto basta una pasada, porque preguntar si ya lo viste es O(1).
nums = [4, 9, 1, 9]
n = len(nums)
pasos = 0
for i in range(n):
for j in range(i + 1, n):
pasos += 1
print(pasos)Imprime
6
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Completa el código
Completa para que la función avise cuando un número ya había salido antes.
2. Escribe el código
Escribe
hay_repetido(nums): regresaTruesi algún número aparece dos veces yFalsesi no. Usa un conjunto para recordar los que ya viste, en una sola pasada.3. Escribe el código
Ahora demuéstralo contando.
revisar(nums)regresa una lista con dos cosas: si hay repetido, y cuántos números miró antes de contestar. Suma un paso por cada número que mires y sal en cuanto encuentres el repetido.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.