擅长:python、mysql、java
<p>更具可读性的方法。您不应该将<code>map</code>或{<cd2>}与lambdas混合太多。条件理解和生成器通常是更好的选择:</p>
<pre><code>def min_coins(amount, denominations):
# these two base cases seem to cover more edge cases correctly
if amount < 0:
return None
if amount == 0:
return 0
tries = (min_coins(amount-d, denominations) for d in denominations)
try:
return 1 + min(t for t in tries if t is not None)
except ValueError: # the generator in min produces no values
return None
min_coins(11, [1,3,5])
# 3
</code></pre>