【LeetCode热题100】【动态规划】零钱兑换

题目链接:322. 零钱兑换 - 力扣(LeetCode)

要拿硬币凑钱,硬币无限多,就是完全背包问题,定义dp[i]是要凑的钱i的硬币数,对于当前硬币来说,如果选择了这个硬币,要么要凑的硬币数就变成dp[i-coin]

复制代码
class Solution {
public:
    int coinChange(vector<int> &coins, int amount) {
        vector<int> dp(amount + 1,INT_MAX / 2);
        dp[0] = 0;
        for (auto &coin: coins)
            for (int i = coin; i <= amount; ++i)
                dp[i] = min(dp[i], dp[i - coin] + 1);
        return dp[amount] == INT_MAX / 2 ? -1 : dp[amount];
    }
};
相关推荐
夏鹏今天学习了吗7 小时前
【LeetCode热题100(78/100)】爬楼梯
算法·leetcode·职场和发展
圣保罗的大教堂8 小时前
leetcode 712. 两个字符串的最小ASCII删除和 中等
leetcode
m0_748250038 小时前
C++ 信号处理
c++·算法·信号处理
Ro Jace8 小时前
电子侦察信号处理流程及常用算法
算法·信号处理
yuyanjingtao9 小时前
动态规划 背包 之 凑钱
c++·算法·青少年编程·动态规划·gesp·csp-j/s
core51210 小时前
SGD 算法详解:蒙眼下山的寻宝者
人工智能·算法·矩阵分解·sgd·目标函数
Ka1Yan10 小时前
[链表] - 代码随想录 707. 设计链表
数据结构·算法·链表
scx2013100410 小时前
20260112树状数组总结
数据结构·c++·算法·树状数组
FastMoMO10 小时前
Qwen3-VL-2B 在 RK3576 上的部署实践:RKNN + RKLLM 全流程
算法
光算科技10 小时前
AI重写工具导致‘文本湍流’特征|如何人工消除算法识别标记
大数据·人工智能·算法