package com.lyf.dp;
/**
* Created by fangjiejie on 2017/11/29.
*/
public class MethodOfChangeMoney {
public static void main(String[] args) {
int a[]=new int[]{5,10,25,1};
int n=15;
System.out.println(changeMethod(a,n));
}
public static int changeMethod(int arr[],int aim){
if(arr==null||arr.length==0||aim<0){
return 0;
}
int l=arr.length;
int dp[][]=new int[l][aim+1];//含义是,货币种类遍历到第 i 种为止,想要兑换 j 元,拥有的方法数
for (int i=0;i<l;i++){
dp[i][0]=1;
}
for(int j=0;j*arr[0]<=aim;j++){
dp[0][j*arr[0]]=1;
}
for(int i=1;i<l;i++){
for(int j=1;j<=aim;j++){
dp[i][j]=dp[i-1][j];
dp[i][j]+=(j-arr[i])>=0?dp[i][j-arr[i]]:0;
}
}
return dp[l-1][aim];
}
}
换钱的方法数
最新推荐文章于 2019-04-01 15:55:30 发布