Skip to content
This repository was archived by the owner on Aug 25, 2022. It is now read-only.

Latest commit

 

History

History
 
 

README.md

动态规划

使用动态规划的条件

  1. 有“最优子结构”,最优解可以由子问题的最优解合并而来。非最优解对最终结果没有影响。
  2. 无后效性。下一步的状态只由前一步的状态决定。不关心前一步的状态是如何计算的,也不关心其他元素的状态。

动态规划的解题思路

  1. 定义子问题。如果有需要的话,分治。
  2. 寻找最优子结构,写出递推公式(状态转移方程、DP方程)。
  3. 合并子问题。
  4. 递推或递归。如果有需要的话,开额外空间进行记忆化。当需要记忆更多结果时,可以对记忆空间进行升维(单变量->数组->二维数组->...),用空间换时间。