518. 零钱兑换 II-LeetCode

关键字:完全背包、组合数问题

dp[0][0] 即价值0的物品放到容量为0的背包,应该也算一种方案 本题考查组合问题:问题求解为组合数,即dp[i][j] = dp[i-1][j] + dp[i][j - nums[i]] 个方案

alt

public:
    int change(int amount, vector<int>& coins) {
        int n = coins.size();
        vector<vector<int>> dp(n+1, vector<int>(amount+1,0));
        //1.边界初始化
        dp[0][0] = 1;
        //2 dp主过程
        for(int i=1;i<=n;i++) {
            for(int j=0;j<=amount;j++) {
                if(coins[i-1] <= j) {
                    dp[i][j] = dp[i-1][j] + dp[i][j - coins[i-1]];
                }else{
                    dp[i][j] = dp[i-1][j];
                }
            }
        }
        return dp[n][amount];
    }
};
全部评论

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务