动态规划问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
传统的递归树,计算效率非常低,因为内容太多了。所以我们需要优化递归函数就是高水平的动态规划

在这里插入图片描述
在这里插入图片描述
这个题目的本质就是,想要解决凑11快钱的,问题,这样可以分为
3个递归,只要解决凑10块钱(差一块11),凑9,或者凑6(差五块钱)的问题就行了。

著名的背包问题
在这里插入图片描述
在这里插入图片描述
明确状态和选择。
会变化的就是状态,让状态变化的就是选择
看起来就是自变量和因为变量一样,会发生变化的就是自变量,影响变化的因为就是因变量。

在这里插入图片描述
明确dp数组的问题。
写状态转移方程。转移状态。

在这里插入图片描述
在这里插入图片描述
不把第i个用品装进dp数组的含义就是,我只把前I - 1个用品放进dp数组里,
在这里插入图片描述

在这里插入图片描述

背包代表里面行为有两种
1.是东西放进去,放进去之前还要考录一下,容量能不能放进去一个物品,毕竟还是有容量限制的
2.第二个状态,我这个东西能不能替换背包里别的东西?替换之后价值是变大了还是变小了。
在这里插入图片描述
动态规划经典题目
斐波那数列
每一项都是前两项的和
在这里插入图片描述
在这里插入图片描述
菲波那数列因为其特性,所以当n = 1,n = 2时候面对的是不断地递归。
线性规划也是这个特性
我们当前的值收到前面值得影响,而且很大程度的影响。

在这里插入图片描述
两种状态,选择或者不选,这两种状态都有道理。

在这里插入图片描述
斐波那契数列这样存在冗余可以被优化
写一个数组去优化这个东西,去存储这个东西

class Solution {
   
    public int fib(int n) {
   
        
        int[] moment = new int[n + 1];
        return helper(moment,n);

    }

public int helper(int[] moment,int n){
   </
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值