LeetCode 322 | 史上最佳Coin Change题解(python)

Coin change

硬币找零问题:给定一个数组coins表示零钱的面值,然后给出手头钱的总数amount,问最少可以用多少枚硬币找零。

Example 1:
 Input:coins=[1, 2, 5], amount = 11
 Output:3
 Explanation: 11 = 5 + 5 + 1
 
Example 2:
 Input:coins=[1, 2, 5], amount = 3
 Output:-1
1.BFS(广度优先搜索)

以当前值amount为起点,相邻的每一个节点为amount-coin(coin in coins, amount - coin),找出能找零的最小层即可,找不到返回-1.(运行超时)

class Solution:
    def coinChange(self, coins, amount):
        """
        :type coins: List[int]
        :type amount: int
        :rtype: int
        """
        count = 0
        if not coins:
            return -1
        if not amount:
            return 0
        if amount < coins[0]:
            return -1
        q_store = [amount]
        while q_store:
            count += 1
            q_list = q_store
            q_store = []
            
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值