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