跳至主要内容

322. 零钱兑换

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

        for (int i = 0; i < coins.size(); i++)
        {
            if (coins[i] < dp.size())
                dp[coins[i]] = 1;
        }

        for (int i = 1; i <= amount; i++)
        {
            int mi = INT_MAX;
            for (int j = 0; j < coins.size(); j++)
            {
                if (i > coins[j] && dp[i - coins[j]] != -1)
                {
                    int num = min(dp[i - coins[j]] + 1, dp[i]!=-1? dp[i]:INT_MAX);
                    if (mi > num)
                    {
                        mi = num;
                    }
                }
            }

            if (mi != INT_MAX)
            {
                dp[i] = min(dp[i] != -1 ? dp[i] : INT_MAX, mi);
            }
        }

        return dp[amount];
    }
};

评论

此博客中的热门博文

老毛子路由器无线桥接问题

  信道带宽:改成20M  关闭 DHCP 服务器  关闭动态 (DHCP) 路由 修改IP地址从192.168.123.1到192.168.1.114  无线 AP 工作模式:选择AP-Client+AP 无线 AP-Client 角色:选择LAN bridge 连上上级wifi done 路由器自身可能上不去网,执行: route add default  gw 192.168.1.1 不过这种方式无法翻墙 ////////////////////////////////////////////////////////////// 第二种方式 不改信道不关闭DHCP,保持网段是192.168.123.1 无线 AP 工作模式:选择AP-Client+AP 无线 AP-Client 角色:选择WAN 连上上级wifi done 路由器可以翻墙,但是192.168.1.1的机器访问不了192.168.123.1的机器 解决方法: 在192.168.123.1的机器把想要访问的机器比如192.168.123.100设置DMZ主机,这样就可以访问了,在 192.168.1.1能看到分配的ip比如192.168.1.115