首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【LeetCode每日一题】518. 零钱兑换 II

【LeetCode每日一题】518. 零钱兑换 II

作者头像
公众号guangcity
发布2021-07-09 15:50:54
发布2021-07-09 15:50:54
7070
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

【LeetCode每日一题】518. 零钱兑换 II

题目:

给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。

示例 1:

代码语言:javascript
复制
输入: amount = 5, coins = [1, 2, 5]
输出: 4
解释: 有四种方式可以凑成总金额:
5=5
5=2+2+1
5=2+1+1+1
5=1+1+1+1+1

示例 2:

代码语言:javascript
复制
输入: amount = 3, coins = [2]
输出: 0
解释: 只用面额2的硬币不能凑成总金额3。

示例 3:

代码语言:javascript
复制
输入: amount = 10, coins = [10] 
输出: 1

题解:

典型的背包问题,跟爬楼梯那道题非常相像。

代码语言:javascript
复制
class Solution {
public:
    int change(int amount, vector<int>& coins) {
        
        vector<int> dp(amount + 1);
        dp[0] = 1;
        for (auto coin : coins) {
            for (int j = 1; j <= amount; j++) {

                if (j >= coin) {
                    dp[j] = dp[j] + dp[j - coin];
                }
            }
        }
        return dp[amount];
    }
};

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【LeetCode每日一题】518. 零钱兑换 II
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档