(java)硬币找零:目前有三种硬币面值: 1 2 5 ,现在需要拼出面值为27,所需要的硬币数最小。
硬币找零:目前有三种硬币面值: 1 2 5,现在需要拼出面值为27,所需要的硬币数最小。public class CoinChange {//A--- 1 2 5//M---27public int coinChange(int[] A,int M){//最少用多少枚硬币可以拼出27int[] f = new int[M+1];//硬币的面值种类数int n = A.length;/
·
硬币找零:目前有三种硬币面值: 1 2 5 ,现在需要拼出面值为27,所需要的硬币数最小。
public class CoinChange {
//A--- 1 2 5
//M---27
public int coinChange(int[] A,int M){
//最少用多少枚硬币可以拼出27
int[] f = new int[M+1];
//硬币的面值种类数
int n = A.length;
//初始化值
f[0]=0;
for(int i=1;i<=M;i++){
f[i] = Integer.MAX_VALUE;
//最后一枚硬币
//状态转移方程: f[i]=min{f[x-1]+1,f[x-2]+1,f[x-5]+1}
for(int j=0;j<n;j++){
if(i-A[j]>=0 && f[i-A[j]]!=Integer.MAX_VALUE){
f[i]=Math.min(f[i-A[j]]+1,f[i]);
}
}
//如果拼不出面值是27的硬币
if(f[M]==Integer.MAX_VALUE){
f[M]=-1;
}
}
return f[M];
}
public static void main(String[] args) {
int[] A = {1,2,5};
// int M = 27;
int M = 11;
CoinChange c = new CoinChange();
int i = c.coinChange(A, M);
System.out.println(i);
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)