题解 | #兑换零钱(一)#
兑换零钱(一)
https://www.nowcoder.com/practice/3911a20b3f8743058214ceaa099eeb45
class Solution {
public:
/**
* 最少货币数
* @param arr int整型vector the array
* @param aim int整型 the target
* @return int整型
*/
int min(int a,int b)
{
return a>b?b:a;
}
int minMoney(vector<int>& arr, int aim) {
// write code here
if(aim<1) //漏了这一步
return 0;
vector<int>dp(aim+1,aim+1);
dp[0] = 0;
for(int i = 1;i <= aim; i++)
{
for(int j = 0;j < arr.size();j++)
{
if(arr[j]<=i) //漏了这一步
dp[i] = min(dp[i],dp[i-arr[j]]+1);
}
}
return dp[aim]>aim?-1:dp[aim];
}
};
