给您一个整数阵列硬币,阻止了疾病和整数压制的硬币。
返回您需要弥补该金额的最少的硬币。如果这笔钱不能由硬币的任何组成弥补,请返回-1。
您可能会假设每种硬币的无限数量。
示例1:
示例2:
示例3:
笔记:
根据目的,给出整数阵列硬币,表示不同面额的硬币类型,并给出整数代表总金额。硬币组合,它将返回-1。可以假设有各种无限数字的硬币。
乍一看,这是一个动态的调查计划。解决DFS +备忘录问题的问题(实际上,因为这些天的每日问题正在检查到最简单的逻辑,如果我们在示例1中需要11个,那么我们只要求最少的硬币数量数量为10,或找到最小硬币的金额9至91。我们可以看到这些子问题彼此独立。我们定义了构成所需的硬币的功能DP(n)总金额如下。
如果您可以汇总金额,则必须是最低硬币的数量。要实现内存,您需要使用Python注释来记住出现的DP(N)结果,否则将需要超时。
时间复杂性为O(n),空间复杂性为O(1)。
https://leetcode.com/prblems/coin-change/
您的支持是我最大的动力
原始:https://juejin.cn/post/7102596051881689096