完全背包和01背包问题唯一不同的地方就是,每种物品有无限件
暴力枚举
最直接的做法是dfs:
int res = 0;
int change(int amount, vector<int>& coins) {
dfs(0, coins, amount);
return res;
}
void dfs(int startIdx, const vector<int>& coins, int residue) {
if (residue == 0)
res += 1;
if (residue < 0)
return;
for (int i = startIdx; i < coins.size(); i++) {
//dfs(i+1, coins, residue - coins[i]); //不重复
dfs(i, co