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];
    }
};
相关推荐
CoovallyAIHub9 小时前
2025年值得关注的5款数据标注工具
深度学习·算法·计算机视觉
FuckPatience9 小时前
C# 补码
开发语言·算法·c#
稚辉君.MCA_P8_Java9 小时前
Gemini永久会员 VB返回最长有效子串长度
数据结构·后端·算法
小年糕是糕手9 小时前
【C++】类和对象(五) -- 类型转换、static成员
开发语言·c++·程序人生·考研·算法·visual studio·改行学it
Xの哲學9 小时前
Linux内核数据结构:设计哲学与实现机制
linux·服务器·算法·架构·边缘计算
秋深枫叶红9 小时前
嵌入式第二十七篇——数据结构——栈
c语言·数据结构·学习·算法
灵犀坠9 小时前
前端面试&项目实战核心知识点总结(Vue3+Pinia+UniApp+Axios)
前端·javascript·css·面试·职场和发展·uni-app·html
稚辉君.MCA_P8_Java9 小时前
Gemini永久会员 Java 返回最长有效子串长度
java·数据结构·后端·算法
Swift社区10 小时前
LeetCode 440 - 字典序的第 K 小数字
算法·leetcode·职场和发展
youngee1110 小时前
hot100-42二叉树的右视图
算法