给出DP的递归求解公式: count[amount] = min{ count[amount - coins[i] ] } , 0 <= i < n; 这里count[amount] 表示组合出amount数值所需要的最小硬币数目,coins是硬币面值的数组。 根据这个公式,我们能轻松的给出伪代码: coinChange(int[] coins,intamount): let count[0,1... amount+1] be ane...
Leetcode 322. Coin Change 硬币找零问题 MaRin 菜鸡一只 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。对应leetcode链接为: https:/...
leetcode的testcase有一个为amount为0的时候,所以在代码的开头加了一个判断。 吐槽一下leetcode怎么有这么多诡异的testcase。 classSolution:defcoinChange(self,coins:List[int],amount:int)->int:ifamount==0:return0dp=[amount+1]*(amount+1)dp[0]=0foriinrange(1,amount+1):forcincoins:ifi>=c:dp[...
for(inti=1;i<=amount;i++){ if(dp[i]==1)continue; for(intj=i-1;j>=i/2;j--){ if(dp[j]!=Integer.MAX_VALUE && dp[i-j]!=Integer.MAX_VALUE) dp[i]=Math.min(dp[i],dp[j]+dp[i-j]); } } returndp[amount]==Integer.MAX_VALUE?-1:dp[amount]; } } 在更新dp数组的时候,...
动态转移方程 dp[i] = min(dp[i], dp[i - coin] + 1), dp[i]可以由前面的值加上一个硬币得到 时间复杂度O(mn), 空间复杂度O(m), m为amount, n为数组 coins的长度 代码: C++: class Solution{public:intcoinChange(vector<int>&coins,intamount){vector<int>dp(amount+1);for(inti=1;i<amou...
if dp[-1] == float("inf"): return -1 else: return dp[-1] print(Solution().coinChange([4,3], 14)) # 4 方法2:广度优先搜索(BFS) 这道题和这样的题目很类似:一个人要从原点 0 走到 amount,每一次有不同走法,求走到 amount 所需要的最少步数。而之前写过这样的题目的做法:从M走到N最...
dp[i-coins[0]]+1: 表示取一张coins[0]面额加上合计为i-coins[0]的最小纸币数。另题目要求无法合计出的金额i,dp[i]要返回-1,所以要作特殊处理,否则就会返回元素初始化值0. 2.代码 public class Solution { public int coinChange(int[] coins, int amount) { if(coins.length==0) return -1; ...
change([2,1], 3)) # 2 (111,12) 拓展延伸: 如果这道题是求不同的排列数呢?比如 (1 2)和(2 1)是不同的情况。那么该怎么去做? 其实,这个问题是 Leetcode 的另一道题: 【377】给一个数组和一个目标,求合成目标的不同组合数,与顺序有关 本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/...
coddding/codding/src/main/java/net/neoremind/mycode/argorithm/leetcode/CoinChange.java/ Jump to Cannot retrieve contributors at this time 24 lines (23 sloc)718 Bytes RawBlame packagenet.neoremind.mycode.argorithm.leetcode; /** * You are given coins of different denominations ...
}returndp[amount] = cur == INT_MAX ? -1: cur; } }; 本文转自博客园Grandyang的博客,原文链接:硬币找零[LeetCode] Coin Change,如需转载请自行联系原博主。