【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];
    }
};
相关推荐
zxsz_com_cn19 小时前
设备预测性维护系统实战指南:架构、算法与落地路径
算法·架构
爪哇部落算法小助手19 小时前
爪哇周赛 Round 3
数据结构·c++·算法
吃着火锅x唱着歌19 小时前
LeetCode 3623.统计梯形的数目 I
算法·leetcode·职场和发展
吃着火锅x唱着歌19 小时前
LeetCode 2364.统计坏数对的数目
数据结构·算法·leetcode
qq_3363139319 小时前
java基础-set类集合进阶
java·算法
嵌入式老牛20 小时前
第13章 图像处理之Harris角点检测算法(二)
图像处理·opencv·算法·计算机视觉
渡我白衣20 小时前
哈希的暴力美学——std::unordered_map 的底层风暴、扩容黑盒与哈希冲突终极博弈
java·c语言·c++·人工智能·深度学习·算法·哈希算法
zl_vslam20 小时前
SLAM中的非线性优-3D图优化之相对位姿Between Factor(六)
前端·人工智能·算法·计算机视觉·slam se2 非线性优化
qq_4335545420 小时前
C++ 最大子段和(动态规划)
开发语言·c++·动态规划
budingxiaomoli20 小时前
算法--位运算
算法