题解 | #兑换零钱(一)#
兑换零钱(一)
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]; } };