动态规划初步
来源:互联网 发布:java单选框值的获取 编辑:程序博客网 时间:2024/06/01 07:21
凑钱问题:
题目:给一个总额amount,以及现有的钱币面值数组coins,要求计算最少需要多少张coins中的钱币才能凑出总额;
动态规划是将大问题转化为小问题,然后一步步求解出最终结果。具体到这道题,我们可以把大问题即凑amount元转化为凑齐amout-1,amount-2等等
当我们计算"凑5元"的时候一定要相信:凑1-4元都已经是最优结果了,同样凑4元要相信凑1-3是最优结果。这便是动态规划的全部:大问题转化为小问题,每次小问题都是最优结果,最终基于这些小问题得到大问题的最优结果,各种dp问题的主要不同是大问题是如何“基于小问题”得出结果的
回到上面的图片中,我们这道题目要求的是计算凑amount所需最少的钱币张数,那凑X元储存的就应该是钱币的张数,所以上面的图片进一步转化
当我们凑5元的时候,由于有3中面值可选,我们不确定选哪个是最佳,所以需要遍历一次。当选面值1RMB时,需要借助子问题凑4元的答案;当选面值2RMB时,需要借助子问题凑3元;选面值3RMB需要借助子问题凑2元,如此得出三个答案(A,B,C),最终计算着三个答案哪个是最优结果,即哪个所需张数最少,并将至存放到dp[5]作为凑5元的最优结果,以上便是动态规划在凑硬币问题上的应用,其实既然都叫思想了很明显凡是大问题依赖小问题解的都可以使用dp求出。
阅读全文
0 0
- 动态规划初步
- 动态规划初步探索
- nyoj_853动态规划-初步
- 动态规划初步
- 动态规划初步
- 动态规划初步
- 动态规划初步
- 动态规划初步
- 动态规划初步
- 动态规划初步
- 动态规划初步
- 动态规划初步学习笔记
- 第九章 动态规划初步
- hdu 1159 动态规划初步
- 动态规划初步学习-hdu4800
- 动态规划初步进阶(一)
- 动态规划初步csu 1587
- 动态规划初步-数塔问题
- Coursea吴恩达《卷积神经网络》课程笔记(2)深度卷积网络
- [saiku] 将saiku自带的H2嵌入式数据库迁移到本地mysql数据库
- C# 事件记录
- 认识WSGI
- ubuntu12 移植MP3
- 动态规划初步
- Java_HttpClient
- java代码运行Python程序
- 记录一次简单mysql主从配置
- unity3d新版动画系统模型动画播放,暂停,倒退播放
- 在全志r40平台tinav2.1系统下调通ov5640(分色排版)
- Error:This Gradle plugin requires Studio 3.0 minimum解决办法
- mac上查看android手机文件 --HandShaker
- Volley 请求返回数据中文出现乱码