当前位置: 首页 > article >正文

LeetCode讲解篇之322. 零钱兑换

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

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

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

题解代码

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/


http://www.kler.cn/news/338925.html

相关文章:

  • 每天五分钟深度学习pytorch:基于pytorch搭建一元线性回归模型
  • Axure中文版:原型设计新手必备工具,轻松上手!
  • 数据挖掘笔记part one (认识数据挖掘)
  • matplotlib中文显示乱码问题
  • 线性代数书中求解齐次线性方程组、非齐次线性方程组方法的特点和缺陷(附实例讲解)
  • 在 JavaScript 中使用 window 对象来刷新页面
  • 深入浅出:现代JavaScript开发者必知必会的Web性能优化技巧
  • 体系结构论文(五十四):Reliability-Aware Runahead 【22‘ HPCA】
  • 简单认识redis-5 jdbc 与 jedis 使用的区别
  • Redis 缓存策略详解:提升性能的四种常见模式
  • springboot整合mybatis案例
  • Spring Boot助力医院数据管理
  • 【C语言】关于指针各项细节以及与其他知识点关联
  • Java Web 开发
  • 目标检测 DN-DETR(2022)
  • 数据库分区
  • tensorflow快速入门--如何定义张量、定义网络结构、超参数设置、模型训练???
  • 程序设计基础I-实验5 一维数组
  • XTuner微调个人小助手认知
  • 详细介绍pandas 与 numpy 在python中结合用法