Dynamic Programming 动态规划问题 DP

来源:互联网 发布:mac版ae导出快捷键 编辑:程序博客网 时间:2024/05/18 03:07

动态规划问题通过利用重叠子问题,优化子结构,以空间换时间,来达到优化时间复杂度的目的。

分类

主要分为两大类:自顶向下Top-down(经常被称作:memorization);  自底向上Bottom-Up.


一、memoization(TOp-Down):

例如求斐波那契数列fib(5),过程如下:


相同的计算过程一直再重复,为了避免重复,我们可以把已经计算过的结果先保存起来,那么用的时候就可以直接使用,这样就避免了重复的计算过程。

array map [0...n] = { 0 => 0, 1 => 1 }fib( n )   if ( map( n ) is cached )      return map( n )   return map( n ) = fib( n - 1 ) + fib( n - 2 )

每个子问题计算一次,时间复杂度为O(n).

二、Bottom-Up

fib( n )   array map [0...n] = { 0 => 0, 1 => 1 }   for ( i from 2 to n )      map[i] = map[i-1] + map[i-2]   return map[ n ]


使用动态规划方法解决问题的下一步关键,是弄清楚要解决的问题的递归关系。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 喂母乳乳头破了怎么办 宝宝吸了乳头痛怎么办 喂母乳奶头很疼怎么办 孩子吸的乳头痛怎么办 新生儿一直睡觉不吸吮怎么办 新生儿光睡觉不吃奶怎么办 婴儿不吸母亲的奶怎么办 肾里有结石一直不掉下来怎么办 宝宝拍不出来嗝怎么办 未满月宝宝溢奶怎么办 吃母乳老是吐奶怎么办 宝宝吃母乳吐奶怎么办 新生儿三天没大便了怎么办 奶水多宝宝呛奶怎么办 婴儿的含乳姿势不正确怎么办 一个月竖着抱了怎么办 乳头被婴儿吸痛怎么办 婴儿从鼻孔吐奶怎么办 宝宝习惯含着乳头睡觉怎么办? 宝宝习惯奶瓶不吃乳头怎么办 婴儿从鼻子吐奶怎么办 宝宝从鼻孔出奶怎么办 一个月婴儿溢奶怎么办 刚出生婴儿溢奶怎么办 宝宝含不住乳晕怎么办 宝宝含不了乳晕怎么办 宝宝溢奶一直哭怎么办 宝宝倒奶很多次怎么办 宝宝吃了润肤乳怎么办 奶瓶很难吸出奶怎么办 2个月宝宝奶睡怎么办 孕四个月轻度缺碘怎么办 宝宝吃了奶粉呕吐怎么办 宝宝吃奶只含乳头怎么办 母乳流的太快怎么办 两个月小孩乳头混淆了怎么办 喂奶期间乳房有肿块怎么办 宝宝只吃乳头不吃奶嘴怎么办 宝宝只吃一个乳头怎么办 宝宝只吃乳头不吃奶瓶怎么办 给泰迪奶狗喂奶呛到了怎么办