Java实现 LeetCode 322 零钱兑换
322. 零钱兑换
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。
示例 1:
输入: coins = [1, 2, 5], amount = 11
输出: 3
解释: 11 = 5 + 5 + 1
示例 2:
输入: coins = [2], amount = 3
输出: -1
说明:
你可以认为每种硬币的数量是无限的。
class Solution {private int min = Integer.MAX_VALUE;public int coinChange(int[] coins, int amount) {Arrays.sort(coins); // ascdfs(coins, coins.length - 1, amount, 0);return min == Integer.MAX_VALUE ? -1 : min;}private void dfs(int[] coins, int ci, int rest, int cnt) {if (ci < 0) return;for (int i = rest / coins[ci]; i >= 0; i--) {int currRest = rest - i * coins[ci], currCnt = cnt + i;if (currRest > 0 && currCnt + 1 < min) dfs(coins, ci - 1, currRest, currCnt);else {if (currRest == 0 && currCnt < min) min = currCnt;break;}}}
}
Java实现 LeetCode 322 零钱兑换相关推荐
- leetcode: 322.零钱兑换
322.零钱兑换 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/coin-change/ 给你一个整数数组 coins ,表示不同面额的硬币:以及一 ...
- LeetCode 322. 零钱兑换(DP)
文章目录 1. 题目信息 2. 解题 2.1 回溯穷举 2.2 动态规划 1. 题目信息 给定不同面额的硬币 coins 和一个总金额 amount. 编写一个函数来计算可以凑成总金额所需的最少的硬币 ...
- golang力扣leetcode 322.零钱兑换
322.零钱兑换 322.零钱兑换 题解 代码 322.零钱兑换 322.零钱兑换 题解 //state: dp[i]金额为i时所需最少硬币个数 //function: dp[i]=dp[i-n]+1 ...
- [LeetCode] 322.零钱兑换 五种方法讲解
322.零钱兑换 五种方法讲解 文章目录 322.零钱兑换 五种方法讲解 1 问题描述 2 问题分析 3 解决策略 3.1 递归-暴力解决 3.2 递归-加入存储 3.3 BFS 3.4 动态规划-自 ...
- LeetCode 322. 零钱兑换
322. 零钱兑换 难度 中等 给你一个整数数组 coins ,表示不同面额的硬币:以及一个整数 amount ,表示总金额. 计算并返回可以凑成总金额所需的 最少的硬币个数 .如果没有任何一种硬币组 ...
- Leetcode.322 零钱兑换
索引iii表示 amountamountamount 金额,dp[i]dp[i]dp[i] 表示最少 coinscoinscoins 个数. 递归 class Solution {int res = ...
- Leetcode 322.零钱兑换
Time: 20190906 Type: Medium 题目描述 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币 ...
- leetcode 322. 零钱兑换 思考分析
目录 1.题目 2.思路分析 3.参考链接 1.题目 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总 ...
- 99. Leetcode 322. 零钱兑换 (动态规划-完全背包)
步骤一.确定状态: 确定dp数组及下标含义 dp数组是个amout+1的数组,dp[j]表示的是装满容量为j的背包所需要的最 少物品的个数 步骤二.推断状态方程: 对于当前物品i, 有两种选择决定了d ...
最新文章
- 区分Java拦截器和过滤器
- android连接sqlite进行简单的增删改查和事务管理
- iOS - Flutter混合开发
- mysql --The MEMORY Storage Engine--官方文档
- 一阶电路暂态响应的结果分析。_反激式DCDC变换器的分析、计算与仿真精讲
- Swift之旅--数据类型
- 分布式锁 基于Redis
- 一元运算符重载 前置和后置++ --(这种一般用成员函数来实现重载)
- 小白学python之整型,布尔值,十进制二进制转换和字符串详解for循环!
- Maven命令安装本地jar包到本地仓库
- 宏正ATEN推出ALTUSEN全系列IP-Based远程机房管理方案
- 发布阿里云OSS for phpcmsV9整合教程
- selenium中CSS选择器定位
- 常见EDA软件的license管理
- 基于matlab的红外图像处理算法研究,基于小波的红外图像去噪算法研究
- OpenJudge NOI题库 入门 116题 (二)
- 不规则图形数格子的方法_最强大脑第四季不规则数独规则介绍 数独技巧口诀带图解析...
- 中国科学技术大学计算机考研好考吗,中国科学技术大学计算机考研复习方法谈...
- Cisco2960交换机密码破解方法
- 使用xpath爬取学院新闻
热门文章
- Unity Shader - 故障艺术之 - Glitch Art - ImageBlock + Split RGB (区块强度 + 分离通道颜色的故障效果)
- 电脑空闲状态,鼠标长时间无人操作后电脑自动关机软件
- 在linux里面把一个在前台运行的命令转为后台运行
- 在平面内,已知矩形的中心点坐标、长、宽和倾斜角度,求矩形四个角点的坐标
- [转]PHP程序段错误分析
- mysqldump 每日定时备份
- 线性反馈移位寄存器LFSR(斐波那契LFSR(多到一型)和伽罗瓦LFSR(一到多型)|verilog代码|Testbench|仿真结果)
- 企业如何通过抖音矩阵号实现抖音搜索丨短视频SEO系统开发部署
- MasterCAM9.1里实体切削验证参数怎么设置
- 双系统主系统重做后另外系统找回