动态规划的基本思想

动态规划

动态规划

  • 将待求解的问题分解成若干个子问题
  • 子问题往往不是相互独立的,有些子问题被重复计算多次
  • 保存已解决的子问题的答案,在需要时再找出以求得答案,就可以避免多次重复计算

1.基本步骤

  • 找出最优解的性质,并刻划其结构特点
  • 递归的定义最优值
  • 自顶向上的方式计算在最优值
  • 根据计算最优值得到的信息,构造最优解

2.基本要素
(1)最优子结构:一个问题的最优解包含着其子问题的最优解,是一个问题能够用动态规划求解的前提。
(2)重叠子问题:当用递归求解问题时,并不是每次求解产生的子问题都是新问题,有些会反复出现,即重叠子问题。

3.方法–备忘录法
备忘录法: 记忆法搜索,它的控制结构与递归控制结构相同,它在每一次求解子问题时对已求问题进行搜索,如果已经计算过,返回结果,否则进行计算;它为每个求解的子问题存到一个表格,用时以常数的时间进行查询。

`int solve()
	{
	 if(备忘录中包含子问题的解)
	  return 备忘录的值;
	 else
	       递归求解;
	}

有些动态规划的问题,大家可以网上搜索大神写的解法,比如 动态规划入门经典例题:硬币找零

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值