leetcode(動態規劃)零錢兌換

2021-09-12 10:41:50 字數 770 閱讀 4272

給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回-1

示例 1:

輸入:coins =[1, 2, 5], amount =11輸出:3解釋:11 = 5 + 5 + 1
示例 2:

輸入:coins =[2], amount =3輸出:-1
說明:

你可以認為每種硬幣的數量是無限的。

動態規劃(夏令營機試題有過這一題,我當時沒複習動態規劃,不會做,悔恨)

動態規劃最關鍵的一點是想好dp陣列的含義。

思路是從金額0到金額amount,每一步都力求計算出所需的最少硬幣數dp[i],則最終dp[amount]就是湊齊金額amount所需最少的硬幣數。

class solution 

}dp[i]=min;

}if(dp[amount]==int_max)

else

return dp[amount];

}};

LeetCode 零錢兌換II(動態規劃)

給定不同面額的硬幣和乙個總金額。寫出函式來計算可以湊成總金額的硬幣組合數。假設每一種面額的硬幣有無限個。示例 1 輸入 amount 5,coins 1,2,5 輸出 4 解釋 有四種方式可以湊成總金額 5 55 2 2 1 5 2 1 1 1 5 1 1 1 1 1 示例 2 輸入 amount ...

LeetCode動態規劃 322零錢兌換

給定不同面額的硬幣 coins 和乙個總金額 amount。編寫乙個函式來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合能組成總金額,返回 1。示例 1 輸入 coins 1,2,5 amount 11 輸出 3 解釋 11 5 5 1 示例 2 輸入 coins 2 amount...

動態規劃零錢問題

問題 給你 k 種面值的硬幣,面值分別為 c1,c2 ck,每種硬幣的數量無限,再給乙個總金額 amount,問你最少需要幾枚硬幣湊出這個金額,如果不可能湊出,演算法返回 1 比如說 k 3,面值分別為 2,5,10,總金額 amount 11。那麼最少需要 4枚硬幣湊出,即 11 5 2 2 2。...