public class Solution {
public int CoinChange(int[] coins, int amount) {
int[] dp=new int[amount+1];
dp[0]=0;
for(int j=1;j<=amount;j++) {
dp[j]=int.MaxValue-1;//初始化
for(int i= 0;i<coins.Length;i++){
if(j-coins[i]>=0){
dp[j]=Math.Min(dp[j-coins[i]]+1,dp[j]);
}
}
}
return dp[amount]==int.MaxValue-1?-1:dp[amount];
}
}
另一种方法:
public class Solution {
public int CoinChange(int[] coins, int amount) {
int max=amount+1;
int[] dp=new int[max];
Array.Fill(dp,max);//c#Array类方法
dp[0]