Para la programación dinámica
Pase unos meses leyendo capítulos de PD de CLRS, manuales de diseño de algoritmos. Y también lea y entienda los tutoriales de codificador superior aquí.
Luego practica un problema en cada subcategoría,
- DP + Árbol
- Máscaras de bits DP +
- Gráficos DP +
- DP + Teoría de números
- DP + Hashing
- Árboles de sufijo DP +
- DP + Geometría
- Probabilidades de DP +
- Combinatoria DP +
En general
- Cómo tratar con personas de mala actitud.
- ¿Cómo cambiar mi naturaleza introvertida para volverse socialmente activa? Puedes actuar como si estuvieras activo, ¿cómo puedes llegar a ser realmente social?
- ¿Cómo dejar de ser temerosos y dudosos frente a personas autorizadas? ¿Cómo puedo entrenar mi cuerpo para que deje de reaccionar con miedo?
- ¿Cuáles son algunas funciones útiles de hacer y no hacer?
- Como ser modesto
- No te compares con los mejores programadores.
Disfruta y ponte cómodo con los algoritmos, la codificación, etc. Evite compararse con los mejores programadores, esto podría provocar un estrés por no poder realizar a la par con ellos y podría comenzar a odiar la programación.
** La lucha prematura en el campo de batalla podría terminar lastimándote. Tómate tiempo para afilar tu espada, aprendiendo una buena táctica. **
- Aprende lento y fácil
Aprender rápido, codificar rápido no será beneficioso para usted. Pero aprender lento promueve el aprendizaje profundo.
** Asegúrate de pasar unos días para cada problema al principio **
2. ¿ Aprender algo de cada problema?
Se siente tan bien ver su código compilando, ejecutando y produciendo los resultados esperados. No olvides ese problema desde ese momento, pero asegúrate de que lo entiendes.
- ¿En qué se diferencia cada problema de otros problemas que ha encontrado?
- ¿Qué aprendiste al resolver un nuevo problema?
** No resuelva los problemas por el bien de mejorar sus puntajes o clasificaciones del Juez en línea de Esfera (SPOJ) . Es una pérdida de tiempo de corte. **
3. Haz preguntas y genera nuevos problemas.
Haga muchas preguntas sobre el problema. No tomes nada por sentado. Modifique la descripción del problema, cree nuevos problemas e intente resolverlos también.
Por ejemplo.
alternativas al problema Subarray de suma máxima: Subarreglo de suma mínima, Subarreglo de producto máximo, Subarreglo de producto mínimo, etc.
** Recuerda que en el mundo real, serás probado en problemas invisibles. **
5. Conocer múltiples soluciones para un problema.
Conozca múltiples soluciones para un problema desde el peor tiempo de ejecución hasta el mejor, desde el peor espacio hasta la mejor utilización del espacio. Comprender los pros y los contras de cada solución.
6. Visualiza la solución.
Agregue un montón de printf en su solución y visualice cada paso de la solución.
vea esta respuesta: la respuesta de Jayaprakash Sundararaj a ¿Cómo visualizará la recursión en general y en estructuras de datos como los árboles?