零钱兑换(DP)

server/2025/2/13 3:17:05/

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。

计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。

你可以认为每种硬币的数量是无限的。

示例 1:

输入:coins = [1, 2, 5], amount = 11
输出:3 
解释:11 = 5 + 5 + 1

示例 2:

输入:coins = [2], amount = 3
输出:-1

示例 3:

输入:coins = [1], amount = 0
输出:0

提示:

  • 1 <= coins.length <= 12
  • 1 <= coins[i] <= 231 - 1
  • 0 <= amount <= 104

class Solution {
public:int coinChange(vector<int>& coins, int amount) {vector<int> dp(amount + 1,amount + 1);dp[0] = 0;for(int c : coins){for(int i = c; i <= amount; i++){dp[i] = min(dp[i], dp[i - c] + 1);}}return dp[amount] > amount ? -1 : dp[amount];}
};

vector<int> dp(amount + 1, amount + 1);

创建一个 dp 数组,大小为 amount + 1dp[i] 表示组成金额 i 所需的最少硬币数。

由于我们要找一个最小值,所以初始化所有 dp[i]amount + 1,因为coin>=1,不可能会有这个值,但这可以表示我们还没有找到一个解。

for (int coin : coins):

对每一个硬币 coin,我们遍历从 coinamount 的所有金额 i,更新 dp[i](小于coin的不成立)

for (int i = coin; i <= amount; i++):

对于每个金额 i,我们可以选择将当前硬币 coin 添加到组成金额 i - coin 的解上,从而更新 dp[i]dp[i] = min(dp[i], dp[i - coin] + 1),表示最少硬币数的更新。

return dp[amount] > amount ? -1 : dp[amount];

如果 dp[amount] 仍然大于 amount,说明我们没有找到一个有效的解,因此返回 -1


http://www.ppmy.cn/server/141348.html

相关文章

Eclipse下载与安装

发现一篇好文章&#xff0c;适合小白下载eclipse 链接&#xff1a;eclipse下载与安装&#xff08;汉化教程&#xff09;超详细-CSDN博客

虚拟化技术在数据中心中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 虚拟化技术在数据中心中的应用 虚拟化技术在数据中心中的应用 虚拟化技术在数据中心中的应用 引言 虚拟化技术概述 定义与原理 发…

shell基础

一、理解bash基础 默认的Linux shell——Bash&#xff08;Bourne Again SHell&#xff09;可以通过命令控制系统&#xff0c;执行文件操作&#xff0c;或者启动应用程序。它可以在命令行上交互式使用&#xff0c;或者你可以创建一个包含多个shell命令的文件&#xff0c;并像启…

ubuntu22.04 密钥存储在过时的 trusted.gpg 密钥环中

ubuntu22.04 密钥存储在过时的 trusted.gpg 密钥环中 使用 sudo apt update 命令时&#xff0c;会提示密钥存储在过时的 trusted.gpg 密钥环中&#xff0c;具体提示内容如下&#xff1a; W: https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/dists/jammy/InRelease: 密钥…

梧桐数据库聚合函数使用举例

在数据分析和数据库管理中&#xff0c;聚合函数是一类非常重要的工具&#xff0c;它们能够对数据集进行计算并返回单个结果。梧桐数据库提供了丰富的聚合函数&#xff0c;这些函数可以帮助我们快速地对数据进行汇总、分析和处理。本文将介绍梧桐数据库中一些常用的聚合函数及其…

中心极限定理的三种形式

独立同分布的中心极限定理&#xff1a; 设 X 1 , X 2 , … , X n X_1, X_2, \ldots, X_n X1​,X2​,…,Xn​是独立同分布的随机变量序列&#xff0c;且 E ( X i ) μ E(X_i) \mu E(Xi​)μ&#xff0c; D ( X i ) σ 2 > 0 D(X_i) \sigma^2 > 0 D(Xi​)σ2>0存在…

android studio 配置过程

Android studio版本&#xff1a;Android Studio Ladybug | 2024.2.1 windows 10 x64 关键问题解决方法&#xff1a; 1.设置代理&#xff1a; 退出首次配置&#xff0c;进入ide&#xff08;必要时新建工程&#xff09;然后&#xff1a; 然后重启ide 等待下载完成。 代理地…

浅谈智能家居在智慧养老实训室中的作用

随着人口老龄化的加剧&#xff0c;智慧养老逐渐成为社会关注的热点。在此背景下&#xff0c;智能家居技术以其独特的优势受到广泛关注。智能家居不再是奢侈品&#xff0c;而是提升老年人生活品质和家庭养老效率的有效工具。它们为老年人提供了便捷、安全、舒适的生活环境&#…