栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java-动态规划02

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java-动态规划02

兑换零钱问题,当用户给定金币面额时,同时规定,只有一部分硬币零钱可供兑换。问怎样安排能够在兑换的时候所用的数量最少。

兑换零钱题目也是动态规划中比较典型的问题,通常可以用递归解决,不过递归复杂度较大,且重复值较多。所以可以利用逐层求解的方法。

此类题目在leekcode上也有,问题大致如下:

有以下类型的金币:

2 5 10 60

需要兑换的金额为130,问怎样兑换可使兑换的硬币最少。

以下为代码部分:

//主函数
public class test11 {

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();//硬币的种类数
		int s=in.nextInt();//总金额
		int[]a=new int[n];//用来存放硬币金额
		for(int i=0;i 
//方法
static int dp(int[]a,int x){//a为硬币金额数组,x为金额数
		int F;
		int[]f=new int[x+1];//遍历金额
		int[]s=new int[a.length];//临时标记数组
		for(int i=1;i 

运行结果如下:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782346.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号