动态规划经典题目-找零钱的方案数
一、题目描述
在美国,硬币按照面值1,5,10,25,50来铸造(单位为美分)。现在考虑按照面值{d1,…, dk}(单位为分)来铸造硬币的某个国家.我们想统计有多少种方式能找开n分钱,并记种数为C(n)。例如当所在国家硬币面值集合为{1,6,10}时,C(5)=1,C(6)到C(9)都是2,C(10)=3,C(12)=4。
给出一种高效算法来算出C(n)并分析该算法的时间/空间复杂度。(提示:通过计算C(n,d)来解决问题,C(n,d)是最高面值为d情况下能找开n分钱的方式种数.千万注意不要重复计数.)
———题目来源:《算法设计指南》
示例:
输入:coins = [2,3,5] total = 10
输出:4
解释:2 + 3 + 5是一种
2 + 2 + 3 + 3是一种
2 + 2 + 2 + 2 + 2 + 2是一种
5 + 5是一种
总共4种。
class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
评论记录:
回复评论: