动态规划(一)什么是动态规划?

1.动态规划是什么?

动态规划:动态规划常见基础题目之一。

官方的解释是

        动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程

 我的理解

        动态规划总是体现在当前状态由前面的状态推导而来,前面的状态由更前面的状态推导。最开始的状态由定义给出,按照递推公式一步一步推导到当前状态。

        动态规划=给定起始+按照一定规律逐步推导到下一位置状态。

2.动态规划一般用于解决什么问题?

常见题型

  • 斐波那契数列、爬楼梯问题
  • 完全背包、背包问题
  • 打家劫舍(树形DP)
  • 股票问题
  • 子序列问题

拔尖题型

  • 区间DP 、概率DP

3.动态规划解题一般有哪些步骤?

  1. 明确dp数组及下标的含义。
  2. 确定递推公式,但是递推公式只是动态规划的一部分,而非全部
  3. dp数组初始化
  4. 确定遍历顺序:从前往后?从后往前?
  5. 打印dp数组, 用于debug验证等。

代码实现的步骤与思路的步骤是有区别的:

  •         定义dp数组
  •         初始化数组
  •         遍历
  •         递推公式

4.总结

题型识别: 给定初始状态,后面的状态总是由前面的状态决定。

解题步骤:动态规划五部曲:dp[i]含义、递推公式、初始化、遍历顺序、打印debug

掌握方式:多题练习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值