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/

相关推荐
独自归家的兔2 分钟前
面试实录:三大核心问题深度拆解(三级缓存 + 工程规范 + 逻辑思维)
java·后端·面试·职场和发展
HUST2 分钟前
C 语言 第八讲:VS实用调试技巧
运维·c语言·开发语言·数据结构·算法·c#
历程里程碑11 分钟前
LeetCode128:哈希集合巧解最长连续序列
开发语言·数据结构·c++·算法·leetcode·哈希算法·散列表
@淡 定12 分钟前
Hash 索引与 B+树索引的区别与适用场景
b树·算法·哈希算法
Tzarevich12 分钟前
算法效率的核心:时间复杂度与空间复杂度
javascript·算法
没有故事的Zhang同学17 分钟前
03-📊 数据结构与算法核心知识 | 复杂度分析: 算法性能评估的理论与实践
算法
NAGNIP26 分钟前
面试官:为什么需要量化,为什么 int4 _ int8 量化后大模型仍能保持性能?
算法
gihigo199833 分钟前
基于单亲遗传算法的汽车路径规划实现
算法·汽车
Wang2012201337 分钟前
AI各个领域适用的大模型介绍和适配的算法
人工智能·算法
Yzzz-F1 小时前
CF GYM105316A DP
数据结构·算法