与分而治之思想不同的是,动态编程注重在解决重复的子问题上面能够做到可复用, 一般的,这种方式用来优化问题 动态编程的特性: 问题能够拆解为较小的重叠子问题 通过较小问题的最优解从而找到最佳方案 动态算法是记忆化的 可以解决的问题示例: 斐波那契数列 背包问题 河内塔 全双最短路径 Dijkstra 最短路径 项目进度