当前位置:网站首页>LeetCode_322_零钱兑换
LeetCode_322_零钱兑换
2022-08-01 23:54:00 【Fitz1318】
题目链接
题目描述
给你一个整数数组 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 <= 121 <= coins[i] <= 2^(31) - 10 <= amount <= 10^4
解题思路
动态规划三部曲
- 确定
dp数组及下标含义dp[j]:凑成总金额j所需的最少的硬币个数dp[0] = 0
- 确定递推公式
dp[j] = Math.min(dp[j],dp[j-coin[i]] + 1)
- 确定遍历顺序
- 外层遍历物品,内层遍历背包容量
- 将背包初始化为最大值
amount+1 - 注意需要判断剩余的零钱是不是大于硬币的面值,如果不是,那么就不更新
dp[j] - 最后判断
dp[amount] > amount ?
AC代码
class Solution {
public int coinChange(int[] coins, int amount) {
int[] dp = new int[amount + 1];
int max = amount + 1;
Arrays.fill(dp, max);
dp[0] = 0;
for (int i = 0; i < coins.length; i++) {
for (int j = 1; j <= amount; j++) {
if (coins[i] <= j) {
dp[j] = Math.min(dp[j], dp[j - coins[i]] + 1);
}
}
}
return dp[amount] > amount ? -1 : dp[amount];
}
}
边栏推荐
- 【ACWing】230. 排列计数
- GIF制作-灰常简单的一键动图工具
- 信息系统项目管理师必背核心考点(五十七)知识管理工具
- Special characters & escapes in bat
- Use Jenkins for continuous integration, this knowledge point must be mastered
- 多御安全浏览器android版更新至1.7,改进加密协议
- nodejs--process
- easy-excel 解决百万数据导入导出,性能很强
- [Camp Experience Post] 2022 Cybersecurity Summer Camp
- LocalDateTime转为Date类型
猜你喜欢

windows sql server 如何卸载干净?

Secondary Vocational Network Security Competition B7 Competition Deployment Process

ICLR 2022最佳论文:基于对比消歧的偏标签学习
![[Camp Experience Post] 2022 Cybersecurity Summer Camp](/img/1e/716bafc679dc67d3d54bcc21a3b670.png)
[Camp Experience Post] 2022 Cybersecurity Summer Camp

架构基本概念和架构本质

Deep Learning Fundamentals - Numpy-based Recurrent Neural Network (RNN) implementation and backpropagation training

oozie startup error on cdh's hue, Cannot allocate containers as requested resource is greater than maximum allowed

学习笔记:机器学习之回归

在CentOS下安装MySQL

在MySQL中使用MD5加密【入门体验】
随机推荐
根本上解决mysql启动失败问题Job for mysqld.service failed because the control process exited with error code
easy-excel 解决百万数据导入导出,性能很强
Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
几道关于golang并发的面试题
cdh6打开oozieWeb页面,Oozie web console is disabled.
企业防护墙管理,有什么防火墙管理工具?
Chrome书签插件,让你实现高效整理
6132. All the elements in the array is equal to zero - quick sort method
一款简洁的文件传输工具
Artifact XXXwar exploded Artifact is being deployed, please wait...(已解决)
recursion: method calls itself
cdh的hue上oozie启动报错,Cannot allocate containers as requested resource is greater than maximum allowed
Flink Yarn Per Job - 提交流程一
@Transactional 注解使用详解
【三子棋】C语言实现简易三子棋
在linux下MySQL的常用操作命令
【MySQL系列】MySQL索引事务
numpy.unique
在CDH的hue上的oozie出现,提交 Coordinator My Schedule 时出错
JAX-based activation function, softmax function and cross entropy function