leetcode322. Coin Change

辣鸡如我,居然现在完全背包还要想这么久

https://leetcode.com/problems/coin-change/

You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1.

Example 1:

Input: coins = [1, 2, 5], amount = 11
Output: 3 
Explanation: 11 = 5 + 5 + 1

Example 2:

Input: coins = [2], amount = 3
Output: -1

 

class Solution {
public:
    int coinChange(vector<int>& coins, int amount) {
        int dp[20000];
        for (int i = 1; i < 20000; i ++)
            dp[i] = 0x3f3f3f3f;
        dp[0] = 0;
        for (int i = 1; i <= amount ; i ++) {
            for (int j = 0; j < coins.size() ; j ++) {
                if (coins[j]  <= i) {
                    dp[i] = min(dp[i - coins[j]] + 1, dp[i]);
                }
            }
        }
        if (dp[amount] != 0x3f3f3f3f)
            return dp[amount];
        else
            return -1;
    }
};

 

全部评论

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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