yq—2024/5/29—零钱兑换


代码实现:

cpp 复制代码
#define min(a, b) ((a) > (b) ? (b) : (a))

int coinChange(int *coins, int coinsSize, int amount) {
    int dp[amount + 1];
    // 初始化
    for (int i = 0; i < amount + 1; i++) {
        dp[i] = INT32_MAX;
    }
    dp[0] = 0;
    // 01背包 -----先遍历物品,再遍历背包
    // for (int i = 0; i < coinsSize; i++) { // 遍历物品
    //     for (int j = coins[i]; j <= amount; j++) { // 遍历背包
    //         if (dp[j - coins[i]] != INT32_MAX) { // 如果dp[j - coins[i]]是初始值则跳过
    //             dp[j] = min(dp[j - coins[i]] + 1, dp[j]);
    //         }
    //     }
    // }

    // 01背包 -----先遍历背包,再遍历物品
    for (int j = 0; j <= amount; j++) { // 遍历背包
        for (int i = 0; i < coinsSize; i++) { // 遍历物品
            if (j >= coins[i] && dp[j - coins[i]] != INT32_MAX) { // 如果dp[j - coins[i]]是初始值则跳过
                dp[j] = min(dp[j - coins[i]] + 1, dp[j]);
            }
        }
    }
    if (dp[amount] == INT32_MAX) {
        return -1;
    }
    return dp[amount];
}
相关推荐
Forever Nore5 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
evans在进步13 小时前
LeetCode 200:岛屿数量——Java DFS 染色法详解
java·leetcode·深度优先
旖旎夜光13 小时前
LeetCode 202:快乐数(双指针问题) —— 题解
数据结构·c++·算法·leetcode·双指针
君君思密达14 小时前
Leetcode Hot 100 题目详解-哈希表
数据结构·算法·leetcode
203号居民16 小时前
LeetCode hot 100 —560. 和为 K 的子数组
java·算法·leetcode
退休倒计时16 小时前
【每日一题】LeetCode 20. 有效的括号 TypeScript
算法·leetcode·职场和发展·typescript
.道阻且长.16 小时前
3.LeetCode算法习题讲解--双指针--快乐数
算法·leetcode·职场和发展
Forever Nore16 小时前
LeetCode 5 最长回文子串 - 中心扩散
linux·算法·leetcode
Forever Nore18 小时前
LeetCode 6 Z 字形变换 - 按行模拟
算法·leetcode
wabs66619 小时前
关于哈希表【力扣383.赎金信的思考】
算法·leetcode·散列表