int dp(int coins[], int size, int money)
{
int result =-1;
int *array = new int [money+1];
int i=0;
int j=0;
int m=money+1;
for (i=0; i<=money; i++) {
array[i]=-1;
}
array[0] = 0;
for (i=1; i<=money; i++) {
m=money+1;
for (j=0; j<size; j++) {
if (i>=coins[j] && array[i - coins[j]]>=0) {
m = min(m, array[i - coins[j]]+1);
}
}
if ( m == money+1) {
m=-1;
}
array[i] = m;
}
int cnt =0;
for (i=0; i<=money; i++) {
cnt = array[i];
cout << "array[" << i << "]: " << array[i] << endl;
}
result = array[money];
delete [] array;
return result;
}
int main ()
{
int result = -1;
int money = 0;
int coins[3]= {2,3,5};
money = 11;
result = dp(coins, 3, money);
cout << "money: " << money << "result: " << result << endl;
return 0;
}