【动态规划算法】动态规划应用场景和模板

动态规划,英文:Dynamic Programming,简称 DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。

动态规划解决的问题

动态规划,一般可以解决如下几种问题:

  • 基础问题:斐波那契数、爬楼梯、不同路径、整数拆分、不同的二叉搜索树等。
  • 背包问题:01背包、完全背包、多重背包等。
  • 打家劫舍:打家劫舍、打家劫舍||、打家劫舍|||等。
  • 股票问题:买卖股票最佳时机等。
  • 子序列问题:子序列(不连续)、子序列(连续)、编辑距离、回文等。

动态规划模板五步

  • 一、确定 dp 数组以及下标的含义。
  • 二、确定递推公式。
  • 三、dp 数组如何初始化。
  • 四、确定遍历顺序。
  • 五、举例推导 dp 数组(打印dp数组)。

动态规划Debug

  • 这道题目举例推导状态转移公式了么?
  • 打印 dp 数组的日志了么?
  • 打印出来了 dp 数组和想的一样么?

猜你喜欢

转载自blog.csdn.net/qq_44033208/article/details/132422324
今日推荐