兄弟萌,话不多说,show me the code!
import time
def recDC(coinValueList,change,knownResults):
"""递归解法找零兑换"""
minCoins = change
if change in coinValueList:# 递归结束基本条件
knownResults[change] = 1 # 记录最优解
return 1
elif knownResults[change] > 0:
return knownResults[change] # 查表成功,直接使用最优解
else:
for i in [c for c in coinValueList if c<= change]:
numCoins = 1 + recDC(coinValueList,change-i,knownResults)
if numCoins < minCoins:
minCoins = numCoins
# 找到最优解,记录到表中
knownResults[change] = minCoins
return minCoins
if __name__ == '__main__':
print('time start: %.5f' % time.clock())
print(recDC([1,5,10,25],63,[0]*64))
print('time end: %.5f' % time.clock())