递归方法实现找零钱
step1:
初始化最小次数,最小次数不会比要找的零钱还大
step2:
递归跳出条件,如果剩下要找的零钱再硬币面值中
step3:
递归找零钱
def coin_change(coins, change):
min_count = change
if change in coins:
return 1
for value in [i for i in coins if i<change]:
count = 1+ coin_change(coins, change-value)
if count<min_count:
min_count = count
return min_count
测试
coins = [1, 3, 5]
change = 8
coin_change(coins, change)
2
手动验证:
当value为1时,
count = 1 + f(6)= 1+ 1 + f(5) ; 5 in coins; 所以 count = 1 +1 + 1 =3
value为2时
count = 1+ f(5) ; 5 in coins; so, count = 1+1 =2
本文详细解析了使用递归方法实现找零钱算法的过程,包括初始化最小次数、递归跳出条件及递归调用步骤。通过具体示例,如面值为1、3、5的硬币找零8元,展示了算法的执行流程与结果。
1458

被折叠的 条评论
为什么被折叠?



