题解 | #兑换零钱#

兑换零钱

http://www.nowcoder.com/practice/67b93e5d5b85442eb950b89c8b77bc72

```#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,aim;
    cin>>n>>aim;
    vector<int>arr(n,0);
    vector<int>dp(aim+1,INT_MAX-2);
    dp[0] = 0;
    for(int i=0;i<n;i++)
        cin>>arr[i];
    for(int i = 0;i < arr.size();i++)
        for(int j = arr[i];j<=aim;j++)
        {
            if(dp[j-arr[i]!=INT_MAX])
            dp[j] = min(dp[j],dp[j-arr[i]]+1);
        }
    if(dp[aim] == INT_MAX-2) cout<<"-1";
    else cout<<dp[aim];
    return 0;
    
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务