> No estoy seguro de cómo proceder.
Simplemente debe desglosar el problema en las partes que necesita resolver, luego resolverlas a través del código.
> Sé que es un problema [de programación dinámica]
- ¿Cuáles son las cosas adicionales además de DS y Algo serían buenas para la entrevista?
- ¿Qué detección atípica incremental existe en un escenario de flujo de datos?
- ¿Cuál es el máximo común divisor de 55 y 75 usando el algoritmo euclidiano?
- ¿Qué algoritmo se usa en el juego Fifa 13?
- Si T (1) = 2 y T (n) viene dado por T (n / 2) + c para n> 1, ¿cómo calcula la complejidad del algoritmo?
No se preocupe por la optimización hasta que obtenga los valores correctos.
La programación dinámica se emplea cuando ya sabes cómo resolver algo, lo has dividido al menos parcialmente en subproblemas (tal vez solo en tu cabeza) y te das cuenta de que hay una duplicación de esos subproblemas. Realice cada uno de estos pasos paso a paso y vea de dónde viene. Es una optimización.
Una vez que lo haya resuelto, una forma genérica de hacer una programación dinámica es hacer una memorización basada en parámetros. Cuando tiene mucha duplicación de subproblemas y ha logrado factorizar esa función que está recordando para estar cerca del subproblema óptimo, obtendrá una velocidad significativa incluso si no está muy cuidadoso en cómo implementar su tienda de notas.