🧮 Two Sum Visualizer - Algoritmo Interactivo
Un visualizador interactivo y moderno para el algoritmo "Two Sum", que permite entender paso a paso cómo funciona este popular problema de programación con animaciones atractivas.
📱 Imágenes de la Aplicación 📱
![Two Sum Visualizer]
✨ Características
- 🔍 Visualización paso a paso del algoritmo Two Sum
- 📊 Visualización en tiempo real del proceso de búsqueda
- 🧠 Implementación de dos soluciones (O(n) y O(n²))
- 📱 Diseño responsive adaptable a todos los dispositivos
- 🎬 Controles de reproducción (paso a paso y automático)
- 🌓 Diseño moderno con colores atractivos
- 📋 Ejemplos predefinidos para pruebas rápidas
- 📝 Explicación detallada de cada paso del algoritmo
- 🏆 Destacado visual de la solución encontrada
- 🔄 Función de reinicio para probar diferentes casos
🛠️ Tecnologías utilizadas
- 💻 HTML5, CSS3 y JavaScript (ES6+)
- 🎨 CSS avanzado (gradientes, animaciones, transiciones)
- 📱 Diseño responsivo con media queries
- 🎭 JavaScript para animaciones y lógica
- 🐍 Python para implementaciones del algoritmo
- 🌈 Estilos modernos con variables CSS
✨ Efectos y Animaciones
- 🌊 Gradientes lineales para botones principales y títulos
- 💫 Animación fadeIn para la entrada de tarjetas en la carga de la página
- 🔄 Animación pulsante para el nombre en el footer
- 👆 Efectos de escala y cambio de color en iconos sociales al pasar el cursor
- 🔍 Cambio de color y escala para elementos del array durante la visualización
- 📊 Transiciones suaves (0.3s) para todos los elementos interactivos
- 🌈 Resaltado con colores distintos para cada tipo de paso en el algoritmo
- 🔆 Efecto de opacidad y escala para destacar la solución final encontrada
- 👆 Efecto de elevación (transform y box-shadow) en botones al pasar el cursor
- 💎 Efectos de profundidad con sombras en tarjetas principales
🚀 Instalación
Clona el repositorio:
git clone https://github.com/Lizzy0981/TwoSum-Visualizer.gitAbre el archivo index.html en tu navegador o usa un servidor local como Live Server de VSCode.
También puedes acceder a la versión desplegada aquí.
💡 Uso
- Ingresa un array de números separados por comas en el campo "Array de números".
- Ingresa el valor objetivo en el campo "Target".
- Haz clic en "Encontrar solución" para iniciar la visualización.
- Utiliza los controles "Siguiente paso" o "Auto" para ver la ejecución del algoritmo.
- Observa cómo el algoritmo encuentra los dos números que suman el target.
- Revisa la explicación detallada de cada paso en la sección inferior.
📝 Descripción del problema
Two Sum es un problema clásico de algoritmos que consiste en:
Dado un array de enteros
numsy un enterotarget, encontrar los índices de los dos números que sumantarget.
- Cada entrada tendrá exactamente una solución.
- No puedes usar el mismo número dos veces.
- Puedes devolver la respuesta en cualquier orden.
Ejemplos:
💡 Soluciones implementadas
El proyecto incluye dos soluciones diferentes en Python:
- Solución optimizada (O(n)): Utiliza un hash map (diccionario) para encontrar la solución en una sola pasada.
- Solución de fuerza bruta (O(n²)): Utiliza dos bucles anidados para comparar cada par posible de números.
🗂️ Estructura del proyecto
two-sum-challenge/
│
├── index.html # Página principal con el visualizador interactivo
├── styles.css # Estilos CSS para la interfaz y animaciones
├── script.js # Lógica JavaScript para la visualización y animaciones
├── vercel.json # Configuración para despliegue en Vercel
├── python/
│ ├── two_sum.py # Solución optimizada del algoritmo O(n)
│ └── two_sum_brute_force.py # Solución de fuerza bruta O(n²)
└── README.md # Documentación del proyecto
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
👩💻 Créditos
Desarrollado con 💜 por Elizabeth Diaz Familia
🙏 Agradecimientos
- 🎓 Oracle Next Education por el apoyo educativo
- 🚀 Alura Latam por la formación y los desafíos
- 👨🏫 A los creadores del desafío Two Sum por su aporte a la comunidad
- 🌟 A todos los usuarios que utilizan esta herramienta para aprender
Log in or sign up for Devpost to join the conversation.