问题:

如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?

思路

代码

package java_20201010;
import java.util.Scanner;
/*** @ Created with IntelliJ IDEA.* @ClassName Test6* @Description* @Author by小房* @Date 2020/10/10 20:32*/
public class Test6 {/** 假设有 1 元,3 元,5 元的硬币若干(无限),现在需要凑出 11 元,问如何组合才能使硬币的数量最少?*/public int getLeastNum(int[] array,int n){int lens=array.length;if(array==null||lens==0||n<0) {return 0;}int[] dp=new int[n+1];for(int i=0;i<n+1;i++) {dp[i]=0;}/*for(int i=1;i<n+1;i++){int min=999999;for(int j=0;j<lens;j++){if(i-array[j]>=0){int temp=dp[i-array[j]]+1;if(temp<min) {min=temp;}}}dp[i]=min;}return dp[n];*/for(int i=1;i<n+1;i++){for(int j=0;j<lens;j++){if(i-array[j]>=0){dp[i] = dp[i-array[j]] + 1;}}//dp[i]=min;}return dp[n];}public static void main(String[] args) {// TODO Auto-generated method stubTest6 gl=new Test6();int[] array={1,3,5};Scanner sc=new Scanner(System.in);int n=sc.nextInt();int min_count=gl.getLeastNum(array, n);System.out.println(min_count);}}

在这里没有用注释里边的代码前提是array数组是有序的,从小到大排列,否则就需要进行比较更新!!!!

动态规划-最少硬币组合问题(Java)相关推荐

  1. 最值动态规划——最少硬币组合

    #include<iostream> #include<cstdio> #include<cstring> //本来想用 memset 函数来着,后来除了岔子!除了 ...

  2. java动态规划凑硬币问题,详解动态规划最少硬币找零问题--JavaScript实现

    硬币找零问题是动态规划的一个经典问题,其中最少硬币找零是一个变种,本篇将参照上一篇01背包问题的解题思路,来详细讲解一下最少硬币找零问题.如果你需要查看上一篇,可以点击下面链接: 详解动态规划01背包 ...

  3. 硬币组合问题python_动态规划之硬币组合问题

    问题:如果我们有面值为1元.3元和5元的硬币若干枚,如何用最少的硬币凑够11元? 动态规划的本质是将原问题分解为同性质的若干相同子结构,在求解最优值的过程中将子结构的最优值记录到一个表中以避免有时会有 ...

  4. 动态规划之硬币组合问题

    问题:如果我们有面值为1元.3元和5元的硬币若干枚,如何用最少的硬币凑够11元? 动态规划的本质是将原问题分解为同性质的若干相同子结构,在求解最优值的过程中将子结构的最优值记录到一个表中以避免有时会有 ...

  5. 动态规划——最少硬币找零问题(python)

    1. 问题描述 2. 思路 刚开始是想利用贪心算法.假如要找的零钱总额为49元,先找10块的,可以找40块,再继续找5块的,可以找5块,再继续找2块的,可以找4块.找够49元的最少纸币数为4 + 1 ...

  6. python 最小硬币数_Python之动态规划(最少硬币数找零)

    完整代码: # 动态规划最少硬币数找零 def dpMakeChange(coinValueList, change, minCoins, coinsUsed): for cents in range ...

  7. 动态规划(三)——最少硬币和所有硬币问题

    硬币问题 一.最少硬币问题 二.打印最少硬币组合 三.所有硬币组合 3.1硬币数量不限制 3.2硬币数量限制 一.最少硬币问题 有n种硬币,面值为v1-vn,数量无限,选用硬币,使其和金额为s,要求求 ...

  8. Python数据结构20:动态规划:找零兑换问题的动态规划解法并显示使用的硬币组合

    在我们使用递归算法时,可能会出现规模庞大的重复计算,用一个中间表记录每个计算过的最优解法,就可以避免大量的重复计算.中间结果记录可以很好解决找零兑换问题.实际上,这种方法还不能称为动态规划,而是叫做& ...

  9. 动态规划例子,凑硬币,支持各种硬币组合并打印组合详情

    凑硬币是动态规划的一个经典例子,比如有硬币1,3,5,则组合出11有几种方案,最少硬币个数的有几种方案. 网上例子一般都是硬币组合1,3,5,如果不是1开头的就挂了,比如硬币组合是2,5,8,自己编写 ...

最新文章

  1. linux 静态编译 glibc,GCC静态链接glibc库
  2. NanoPi NEO Air使用十四:FrameBuffer的理解和使用
  3. pythonfor循环加2_python-for循环
  4. SpringBoot WebSocket Stomp
  5. SpringBoot+MyBatis+ElementUI中对于时间格式化问题的处理
  6. ITK:用内核卷积图像
  7. 如何进行职业生涯规划
  8. 教你在Linux操作系统中如何创建函数库
  9. 如何将汇编语言转换为c语言,如何把汇编语言转换成C语言
  10. 如何使用远程控制软件并将用途最大化?4款国内外优质应用测评解析
  11. 彻底修改 Windows 系统用户名
  12. Spring+Struts2+Hibernate概述
  13. 使用UDP遇到的问题小结
  14. 对不起,我被裁员了。
  15. 高德地图去掉logo和版权
  16. FydeOS v13.1 更新发布,新增本地输入法支持
  17. 做了个面试题:使用TDD思想,用vue3集成自己手写的event bus。
  18. element组件---Form
  19. 创业分享:创业的过程就是坚持的过程
  20. c语言二分法排序原理,二分法原理是什么意思_二分法排序原理图解

热门文章

  1. 记录:google map谷歌地图自定义叠加层overlay流程
  2. phpcms api接口开发
  3. Three.js设置背景
  4. 什么软件可以代替sc防火墙_车玻璃水的成份是什么?普通肥皂水和清水可以代替吗?...
  5. 【Build】关于-fPIC, -fpic, -fpie, -fPIE的一点理解
  6. 如何寻找基因的启动子——NCBI版
  7. S3C2440 开发板实战(7):字符设备驱动框架+LED驱动
  8. accept()函数
  9. AWD平台搭建与使用入门
  10. 英特尔的Linux Xe内核图形驱动程序