leetcode:322. 零钱兑换[完全背包]

学习要点

  1. 完全背包组合问题

题目链接

322. 零钱兑换 - 力扣(LeetCode)

题目描述

解法:完全背包组合

cpp 复制代码
class Solution {
public:
    int coinChange(vector<int>& coins, int amount) {
        // dp[j] = min(dp[j],dp[j - nums[i]] + 1)要讨论
        // 初始化
        vector<uint64_t> dp(amount+1,-1);
        dp[0] = 0;
        for(int i = 0;i<coins.size();i++)
        {
            for(int j = 0;j<=amount;j++)
            {
                if(j >= coins[i])
                {
                    int a = dp[j]; 
                    int b = dp[j - coins[i]];
                    int c;
                    if(b == -1)
                    {
                        c = -1;
                    }
                    else
                    {
                        c = b + 1;
                    }
                    if( a == -1)
                    {
                        dp[j] = c;
                    }
                    else if( c == -1)
                    {
                        dp[j] = a;
                    }
                    else
                    {
                        dp[j] = min(a,c);
                    }

                }
            }
        }
        return dp[amount];
    }
};
相关推荐
林太白21 小时前
跟着TRAE SOLO学习两大搜索
前端·算法
ghie90901 天前
图像去雾算法详解与MATLAB实现
开发语言·算法·matlab
云泽8081 天前
从三路快排到内省排序:探索工业级排序算法的演进
算法·排序算法
weixin_468466851 天前
遗传算法求解TSP旅行商问题python代码实战
python·算法·算法优化·遗传算法·旅行商问题·智能优化·np问题
·白小白1 天前
力扣(LeetCode) ——43.字符串相乘(C++)
c++·leetcode
FMRbpm1 天前
链表5--------删除
数据结构·c++·算法·链表·新手入门
程序员buddha1 天前
C语言操作符详解
java·c语言·算法
John_Rey1 天前
API 设计哲学:构建健壮、易用且符合惯用语的 Rust 库
网络·算法·rust
愿没error的x1 天前
动态规划、贪心算法与分治算法:深入解析与比较
算法·贪心算法·动态规划
NONE-C1 天前
动手学强化学习 第6章 Dyna-Q 算法
算法