题解 | #兑换零钱#
兑换零钱
https://www.nowcoder.com/practice/67b93e5d5b85442eb950b89c8b77bc72
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,aim;
scanf("%d %d\n",&n,&aim);
vector<int> dp(aim+1,INT_MAX-1);
dp[0] = 0;
for(int i=0;i<n;i++) {
int item;
scanf("%d",&item);
for(int j=item;j<=aim;j++)
dp[j] = min(dp[j],dp[j-item]+1);
}
printf("%d\n",dp[aim]==INT_MAX-1? -1:dp[aim]);
return 0;
}
算法常用解题技巧 文章被收录于专栏
算法常用解题技巧

