题目链接

凑成面值为 11 的最小硬币数可以由以下 3者的最小值得到:

1、凑成面值为 10 的最小硬币数 + 面值为 1 的这一枚硬币;

2、凑成面值为 9 的最小硬币数 + 面值为 2 的这一枚硬币;

3、凑成面值为 6 的最小硬币数 + 面值为 5 的这一枚硬币;

dp[i]表示凑齐i枚金币最小需要的数量

那么第一种方法,

dp[i]=Math.min(dp[i],dp[i-coins[j]]+1);

如上面的例子一样,11可以用dp[10]+1来表示或者就是他本身,当然dp[i-coins[j]+1]不能是一个没有访问过的数,且coins[j]的钱数要小于等于最大钱数i的public int coinChange(int[] coins, int amount) {

int[] dp=new int [101010];

Arrays.fill(dp,amount+1);

dp[0]=0;

for(int i=1;i<=amount;i++){

for(int j=0;j

if(coins[j]<=i&&dp[i-coins[j]]!=amount+1){

dp[i]=Math.min(dp[i],dp[i-coins[j]]+1);

}

}

}

if(dp[amount]==amount+1){

dp[amount]=-1;

}

return dp[amount];

}

第二种思路就是完全背包的思路

完全背包,就是一样物品可以选多个

在本意中第二层循环里面表示的是最大的体积,我们这里换成最大的价值,而dp里面保存的是最小的体积public int coinChange(int[] coins, int amount) {

int[] dp=new int[101010];

Arrays.fill(dp,amount+1);

dp[0]=0;

for(int i=0;i

for(int j=coins[i];j<=amount;j++){

dp[j]=Math.min(dp[j],dp[j-coins[i]]+1);

}

}

if(dp[amount]==amount+1){

dp[amount]=-1;

}

return dp[amount];

}

java零钱换整程序_零钱兑换 Java相关推荐

  1. java零钱换整程序_透析递归应用-换零钱

    题目源于<SICP>,这里做一下调整,如下: 给了面值为50元.20元.10元.5元.1元的五种零钱若干,思考把面值100元人民币换成零钱一共有多少种方式? SICP给出的递归算法思想如下 ...

  2. java零钱换整程序_贪心算法换零钱(java)

    贪心算法思想 贪心算法总是做出在当前看来做好的选择.也就是说贪心算法并不从整体最后考虑,他做出的选择只是局部最优选择.他所做出的仅是在某种意义上的局部最优解.贪心算法不是对所有问题都能得到整体最优解, ...

  3. java零钱换整程序_Leetcode 322. 零钱兑换

    题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/coin-change 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. ...

  4. java零钱换整程序_JAVA微信企业付款到零钱(十分钟搞定),

    JAVA微信企业付款到零钱(十分钟搞定), 最近帮朋友做了一个简单的微分销系统,实现从企业付款到零钱分润的功能,简单记录一下微信企业付款到零钱的开发过程, 主要就是按规则封装好请求参数调用微信接口,涉 ...

  5. java零钱换整程序_Java程序,告诉您从1美分到99美分的零钱要发...

    我必须编写一个Java程序,告诉从1美分到99美分的零钱要赠送多少硬币.例如,如果金额为86美分,则输出将类似于以下内容: 86 cents can be given as 3 quarters, 1 ...

  6. java制作一个应用程序_一个制作java小应用程序的全过程

    一个制作java小应用程序的全过程 一.安装java软件: 从网上下载jdk-7u25-windows-i586.exe,安装到C:\Program Files\Java\jdk1.7.0_25. 二 ...

  7. java简单的记事本程序_如何用JAVA编写简单的记事本程序?

    展开全部 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; i ...

  8. JAVA可不可以编写应用程序_编写一个java应用程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 另附Arith类: public class Arith { //默认除法运算精度小数点后面的位数 private static final int DE ...

  9. java程序设计实验报告代写_代写file I/O作业、代写java Scanner I/O程序、代写java编程作业、代做java实验报告...

    代写file I/O作业.代写java Scanner I/O程序.代写java编程作业.代做java实验报告 日期:2018-09-05 03:40 ?Objectives oCreate a pr ...

最新文章

  1. CarTool 使用,获取图片资源
  2. 团队作业8——第二次项目冲刺(Beta阶段)--第六天
  3. JSON数据解析及gson.jar包
  4. Kali Linux 安全渗透教程第三更1.2 安全渗透所需工具
  5. openCV图像矩阵Mat和二维数组的互相转换
  6. 秒懂机器学习---朴素贝叶斯
  7. excel获取mysql数据库数据类型_js如何读取excel数据库数据库数据类型
  8. 带防夹功能的升降器原理_桌面光污染必不可少——骨伽Bunker RGB鼠标线夹
  9. Java XMPP负载测试工具
  10. php 数字加逗号,PHP数字格式化,数字每三位加逗号
  11. 《Python自动化》学习笔记:shutil模块使用介绍
  12. Tortoise SVN 如何汉化(最简单的处理方式,一看就会)
  13. keras 基础入门整理
  14. spring源码视频教程哪个好
  15. 电商数据库设计之MySQL 数据库设计规范
  16. php集成环境xampp完整安装过程
  17. 优盘中发现计算机病毒怎么办,u盘插电脑中了病毒怎么办
  18. SQL server日志文件过大处理方式
  19. matlab系统稳态误差终值,matlab求稳态误差
  20. xp系统怎么看计算机内存条,XP环境下怎么查看虚拟内存?XP系统虚拟内存过低怎么设置?...

热门文章

  1. python计算上市公司股票30天的股票收益率
  2. 後は勉強をもっともっと頑張りましょう、自分の人生は自分で切り開くしかありません...
  3. idea编辑jsp页面部分页面变黄绿色并且不提示,解决很简单,设置里边找language injection就ok...
  4. 爬虫爬取淘宝商品信息
  5. 高红梅:第三章 海明威社会身份的定位 第一节 文学梦与作家身份的认同
  6. 物联网平台是什么,怎么选择合适的物联网平台?
  7. 数学公式输入:mathquill
  8. 天津室内设计培训班:3分钟带你了解室内设计的6大原则
  9. java直接打印数组 结果输出[I@28d93b30
  10. [PyQt] Python界面编程学习总结