每日编码问题316:硬币找零问题-面额的确定?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日编码问题316:硬币找零问题-面额的确定?相关的知识,希望对你有一定的参考价值。

我正在经历“每日编码问题”,目前陷入其中一个问题。它通过:

您将得到一个长度为N的数组,其中每个元素i代表我们产生变化单位的方式数量。例如,[1,0、1、1、2]表示只有一种方法可以使0、2或3个单元,以及两种制作4个单元的方式。

给出这样一个数组,确定必须使用的面额。例如,在上述情况下,必须有价值为2、3,和4。

我无法确定如何从路总数数组中确定面额。你能解决吗?

有人已经解决了这个问题here,但没有任何解释。

据我收集,他收集了其所有值(方式数== 1)并将其附加到他的答案中的所有元素,但我认为它不考虑可以从一个元素中形成相同数量的事实。低等教派的组合,无论该教派的存在如何,其方式总数仍然为1。

提前感谢!

答案

[如果您要解决硬币找零问题,最好的技术是使用部分可用面额来维持一系列的找零方式,并通过更新数组来添加新面额d,如下所示:

以上是关于每日编码问题316:硬币找零问题-面额的确定?的主要内容,如果未能解决你的问题,请参考以下文章

硬币找零(动态编程)

查找所有排列以获得给定的总和(硬币找零问题)

最少硬币找零问题-动态规划

为啥贪心硬币找零算法对某些硬币组不起作用?

$P3092 [USACO13NOV]$没有找零

2021-06-21:贩卖机只支持硬币支付,且收退都只支持10 ,50,100三种面额。一次购买只能出一瓶可乐,且投钱和找零都遵循优先使用大钱的原则,需要购买的可乐数量是m, 其中手头拥有的1050(