Repaso
English

¿Qué dos propiedades indican que un problema encaja con la programación dinámica?

Opciones

  1. Entrada ordenada y valores únicos
  2. Subproblemas solapados y subestructura óptima (Opción correcta)
  3. Entrada en forma de grafo y presencia de ciclos
  4. Recursión y algo de aleatoriedad en las decisiones

Respuesta

Subproblemas solapados y subestructura óptima

Por qué

La programación dinámica (DP) resuelve un problema grande combinando respuestas de versiones más pequeñas, y guarda cada respuesta pequeña para calcularla una sola vez.

Encaja cuando:

  • Subestructura óptima: la mejor respuesta se construye con las mejores respuestas de los subproblemas.
  • Subproblemas solapados: los mismos subproblemas aparecen una y otra vez.

Dos estilos: top-down con memoización (@lru_cache) o bottom-up rellenando una tabla.

Recuerda

DP = resolver cada subproblema una vez y reutilizarlo.

Términos clave

Practica esta pregunta en Repaso