漫画:动态规划相关内容

动态规划(Dynamic Programming),分阶段求解决策问题的数学思想。应用于编程、管理学、经济学、生物学等。【大事化小,小事化了】

【爬10层台阶案例】
最优子结构 F(10)=F(9)+F(8);
边界 F(1)=1、F(2)=2;
状态转移公式 F(n)=F(n-1)+F(n-2);

1、递归求解
递归求解
二叉树,高度N-1 节点个数接近2^(N-1) 时间复杂度近似O(2^N)
2、备忘录算法(暂存计算结果)
相同的参数被重复计算。用缓存解决,创建哈希表,每次把不同参数的计算结果存入哈希表,遇到相同参数时,直接从哈希表取出,避免重复计算。
备忘录算法
时间复杂度和空间复杂度为O(N)

3、优化空间复杂度(逆向思维,自底向上F(1)===>F(N))
走法
F(4)=F(3)+F(2)=5
F(5)=F(4)+F(3)=5+3=8
每次迭代过程中,只需要保留之前的2个状态。不需要像备忘录算法那样保留全部子状态。
动态规划求解
真正的动态规划
时间复杂度O(N),空间复杂度为O(1)

漫画:什么是动态规划?(整合版)

漫画:有趣的扔鸡蛋问题

漫画:动态规划解决扔鸡蛋问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值