0
点赞
收藏
分享

微信扫一扫

NC126 兑换零钱(一)

NC126 兑换零钱(一)_算法
NC126 兑换零钱(一)_i++_02
示例1

输入:
[5,2,3],20
返回值:
4

示例2

输入:
[5,2,3],0
返回值:
0

示例3

输入:
[3,5],2
返回值:
-1

备注:
NC126 兑换零钱(一)_i++_03

code:

class Solution {
public:
/**
* 最少货币数
* @param arr int整型vector the array
* @param aim int整型 the target
* @return int整型
*/

int minMoney(vector<int>& arr, int aim) {
// write code here
if(aim==0)
return 0;
sort(arr.begin(),arr.end());
vector<int>dp(aim+1,aim);
dp[0] = 0;
for(auto coin:arr)
{
for(int i=coin;i<=aim;i++)
{
dp[i] = min(dp[i],dp[i-coin]+1);
}
}
return dp[aim] == aim?-1:dp[aim];
}
};


举报

相关推荐

0 条评论