Skip to content

Instantly share code, notes, and snippets.

@mikezink
Last active October 10, 2019 11:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikezink/818d393d3b1d706eb1479566c8829448 to your computer and use it in GitHub Desktop.
Save mikezink/818d393d3b1d706eb1479566c8829448 to your computer and use it in GitHub Desktop.
import datetime
def recMC(coinValueList,change):
minCoins = change
if change in coinValueList:
return 1
else:
for i in [c for c in coinValueList if c <= change]:
numCoins = 1 + recMC(coinValueList,change-i)
if numCoins < minCoins:
minCoins = numCoins
return minCoins
print(datetime.datetime.now())
print(recMC([1,5,10,25],63))
print(datetime.datetime.now())
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
print(recDC([1,5,10,25],63,[0]*64))
print(datetime.datetime.now())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment