牛客题霸--换钱的最少货币数
换钱的最少货币数
https://www.nowcoder.com/practice/3911a20b3f8743058214ceaa099eeb45?tpId=117&&tqId=35267&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking
换钱的最少货币数
题目链接
Solution
问n种货币凑成一个面额所需要的最少货币数。
动态规划。
表示凑成面额i的需要的最少货币数。
然后枚举每个面额的货币,更新dp数组即可。
Code
class Solution {
public:
int minMoney(vector<int>& arr, int aim) {
int dp[aim + 5];
dp[0] = 0;
for (int i = 1; i <= aim; ++i) dp[i] = 1e9;
for (int i = 0; i < (int)arr.size(); ++i) {
for (int j = arr[i]; j <= aim; ++j) dp[j] = min(dp[j], dp[j - arr[i]] + 1);
}
if (dp[aim] == 1e9) return -1;
return dp[aim];
}
}; 
巨人网络公司福利 91人发布