LeetCode讲解篇之322. 零钱兑换

文章目录

题目描述

题解思路

我们可以使用动态规划解决这道题,我们首先定义一个数组,数组中第i个元素表示组成金额 i 的最少硬币个数

我们遍历数组的1 ~ amount号位置,对coins进行遍历,查找选择哪个硬币会让组成当前金额的硬币数最少

题解代码

go 复制代码
func coinChange(coins []int, amount int) int {
    f := make([]int, amount + 1)

    for i := 1; i <= amount; i++ {
        f[i] = math.MaxInt
        for _, coin := range coins {
            if i - coin < 0 || f[i - coin] == -1 { // 无法使用当前硬币组成当前金额
                continue
            }

            f[i] = min(f[i], f[i - coin] + 1) // 取硬币个数最小值
        }
        if f[i] == math.MaxInt {
            f[i] = -1
        }
    }

    return f[amount]
}

题目链接

https://leetcode.cn/problems/coin-change/description/

相关推荐
七牛开发者9 小时前
TokenGate:端到端可训练的 Token 剪枝机制,让大模型 Prefill 提速 11.3 倍
算法·机器学习·剪枝·长上下文·tokengate
牧瀬クリスだ10 小时前
Redis Hash实战:高效存储对象与购物车
java·数据库·redis·算法·哈希算法
文丑颜不良啊10 小时前
LeetCode1141~1160题目解析
java·leetcode
木井巳10 小时前
【动态规划: 路径问题】下降路径最小和
java·算法·leetcode·动态规划·推荐算法
deepseek2311 小时前
OpenAI三项科学发现拆解:3-SAT亚指数算法挑战ETH,AI科学声明的验证流水线怎么搭
人工智能·算法·openai
梦帮科技11 小时前
基于幺正李代数连续归一化流的混合量子生成模型 (HQNN-Flow) 完整技术指南(上部分)
网络·人工智能·算法·量子计算
青少儿编程课堂11 小时前
蓝桥杯青少组 + 全国青少年信息素养大赛 + 电子学会图形化考级|校园推箱子大挑战解析
c++·python·算法·bfs·信息学竞赛
ynchyong11 小时前
培养程序化思维
leetcode·程序化思维·刷题经验
荆棘鸟智能12 小时前
河道采砂船识别与轨迹追踪怎么做?检测、跟踪与电子围栏实战思路
人工智能·算法·目标检测