从leetcode518学习动态规划的完全背包问题

完全背包和01背包问题唯一不同的地方就是,每种物品有无限件

518. 零钱兑换 II - 力扣(LeetCode)

暴力枚举

最直接的做法是dfs:

    int res = 0;
    int change(int amount, vector& coins) {
        dfs(0, coins, amount);
        return res;
    }
    void dfs(int startIdx, const vector& 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

你可能感兴趣的:(技术面算法,学习,动态规划,算法)