8.29筆記

63. 不同路徑 II

class Solution(object):
    def uniquePathsWithObstacles(self, obstacleGrid):
        """
        :type obstacleGrid: List[List[int]]
        :rtype: int
        """
        res = len(obstacleGrid)
        tep = len(obstacleGrid[0])
        cur = [0]*tep
        cur[0] = 1-obstacleGrid[0][0]
        for i in range(1,tep):
            cur[i] = cur[i-1]*(1-obstacleGrid[0][i])
        for i in range(1,res):
            cur[0] *= 1-obstacleGrid[i][0]
            for j in range(1,tep):
                cur[j] = (cur[j-1]+cur[j])*(1-obstacleGrid[i][j])
        return cur[-1]

322. 零錢兌換

class Solution(object):
    def coinChange(self, coins, amount):
        """
        :type coins: List[int]
        :type amount: int
        :rtype: int
        """
        dp = [float('inf')] * (amount+1)
        dp[0] = 0
        for i in range(1,amount+1):
            for coin in coins:
                if i >= coin:
                    dp[i] = min(dp[i],dp[i-coin]+1)
        return dp[-1] if dp[-1]!=float('inf') else -1

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章