基于贪心算法钱币找零
时间: 2023-12-12 18:35:44 浏览: 137
运用贪心算法求解找零钱问题
基于贪心算法的钱币找零问题是指在给定一定面额的硬币和一个需要找零的金额时,如何使用最少数量的硬币找零。贪心算法的思想是每次选择面额最大的硬币,直到找零金额为0或者无法再找到更大面额的硬币为止。
以下是基于贪心算法的钱币找零的Python代码实现:
```python
def coinChange(coins, amount):
coins.sort(reverse=True) # 将硬币面额从大到小排序
res = 0
for coin in coins:
if amount >= coin:
res += amount // coin # 计算当前面额硬币的数量
amount %= coin # 计算剩余需要找零的金额
if amount != 0:
return -1 # 如果无法找零,则返回-1
return res
coins = [1, 5, 10, 50, 100]
amount = 123
print(coinChange(coins, amount)) # 输出:5
```
上述代码中,我们首先将硬币面额从大到小排序,然后依次选择面额最大的硬币,计算当前面额硬币的数量,并计算剩余需要找零的金额。如果无法找零,则返回-1。
阅读全文