首页 > 技术文章 > 如何思考一个“动态规划”

yinyuxing 2021-06-15 21:38 原文

  1. 以终为始 - 从终点开始倒推
  2. 思考有几条途径可以到达当前的状态,例如对于二维数组来说,到达 (i,j),可能有 (i-1,j)(i,j-1)(i+1,j)(i,j+1) 等等
  3. 确定选取策略 - 比如有三条路径可以过来,每条路径都带有一定的信息,结合策略(例如 min、max ...)和信息,选择来源
  4. 根据第 2、3 步写出递归函数
  5. 在函数开头加上中止条件
  6. 如果空间开销允许的话,建议加上“备忘录”,用于对于已经走过的节点,快速取值

推荐阅读