Supongamos que tiene 4 números: 1, 2, 3, 1
¿Cuál es la suma total de los números? Fácil, 7 a la derecha.
ahora agrego otro número, 1 a la lista haciéndolo: 1, 2, 3, 1, 1
- Cómo resolver un problema después de unos días si no pude encontrar la más mínima idea de cómo resolver ese problema
- Cómo implementar un hashing sensible a la localidad
- ¿Cuáles son los usos prácticos de 2-3 árboles o árboles rojo-negros?
- Dada una matriz que contiene enteros distintos, ¿cuál es el número promedio de veces que se establece el valor máximo del elemento al encontrarlo?
- ¿Hay alguna forma algorítmica de distinguir palabras multisilábicas de palabras de una sola sílaba en inglés?
Ahora, ¿cuál es la suma de todos los números? Esto también es fácil, 8 correcto.
Ahora, ¿qué hizo cuando agregamos un nuevo número a la lista? ¿Lo calculó agregando cada elemento 1 + 2 + 3 + 1 + 1 de esta manera o simplemente agregó 1 a la suma anterior 7?
Obviamente, simplemente agregaste 7 + 1 porque no querías calcular la suma de toda la lista nuevamente. Eso fue Dp.
El DP básicamente funciona según el principio de eliminar el cálculo redundante de los ya calculados mediante el uso de la memorización (almacenamiento del resultado calculado para su reutilización).
El DP es un tema enorme y solo puede ser dominado por una práctica extensa. Consulte los siguientes enlaces:
- Programación dinámica: de principiante a avanzado
- ¿Hay buenos recursos o tutoriales para programación dinámica (DP), además del tutorial de TopCoder?