动态规划心得

一、找准三个基本要素

  1. 重叠子问题:求每一个状态都会要求的解,比如斐波那契数列的第n项

  2. 最优子结构:获取状态n时,其他状态的最优情况,没有其他条件约束

  3. 状态转移方程:求第n个状态值的方法,比如斐波那契的f(n)=f(n-1)+f(n-2)

二、思路过程
  1. 确定base case,因为求状态n需要用前面的状态去推倒

  2. 确定状态,也就是dp[]数组中,下标的意义

  3. 确定dp数组中变量的含义

  4. 确定状态转移方程

  5. 但凡遇到需要递归的问题,最好都画出递归树,这对你分析算法的复杂度,寻找算法低效的原因都有巨大帮助。

    img

  6. 能否进行状态压缩,求n状态只用pre和cur而不是用整个数组去存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值