322_零钱兑换-python

动态规划问题,稍后更新思路

class Solution(object):
    def coinChange(self,coins,amount):
        """
        :type coins: List[int]
        :type amount: int
        :rtype: int
        """
        INF = float('inf')
        dp = []
        N = len(coins)
        for _ in range(N):
            tmp = [INF] * (amount+1)
            tmp[0] = 0
            dp.append(tmp)

        for j in range(1,amount+1):
            if j >= coins[0] and dp[0][j-coins[0]] != INF:
                dp[0][j] = dp[0][j-coins[0]] + 1
        for i in range(1,N):
            for j in range(1,amount+1):
                if j >= coins[i]:
                    dp[i][j] = min(dp[i - 1][j],dp[i][j-coins[i]] + 1)
                else:
                    dp[i][j] = dp[i - 1][j]
        return dp[len(coins)- 1][amount] if dp[N-1][amount] != INF else -1

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...