No lo estás haciendo bien.
Más de 2000 horas invertidas, pero aún así DS y los algoritmos son muy desafiantes, entonces definitivamente lo estás haciendo mal.
- Material de referencia : es importante que consulte el material correcto. Hay libros fenomenales: Introducción a los algoritmos de Cormen, los algoritmos de Robert Sedgewick son muy buenos libros. También puede tomar cursos en línea en Coursera, Udacity o MIT OCW.
- Implementar : implemente el diseño que leyó y entendió, conozca sus resultados e implicaciones. Tendrá un mejor manejo de casos extremos, valores nulos, usos de memoria y complejidades de tiempo. Intente y visualice su estructura y flujo de solución. Tendrás una mejor comprensión intuitiva.
- Práctica : resuelve múltiples problemas, compara con tus compañeros y mejora tus soluciones.
- Pregunte y responda : intente encontrar un amigo o instructor personal que sea bueno en esto. Solicite incluso las consultas más triviales si es necesario. Participa en stackoverflow. Se organiza y estructura mucho material sobre este tema en foros web.
Consulte los recursos mencionados en este enlace. Los encontré muy útiles
- ¿Las estructuras de datos y los algoritmos son tan importantes para convertirse en un buen programador?
- ¿Qué enunciado describe mejor por qué la notación Big-O es una forma muy útil de analizar la complejidad del algoritmo?
- ¿Cuál es el código de búsqueda binaria usando recursividad?
- ¿Cuál es la última actualización del algoritmo SEO de Google en 2017?
- ¿La complejidad de los algoritmos de clasificación está relacionada con la cantidad de suposiciones que hago? ¿Por qué?