Problem D. Coin Change
Imagine you got N cents as combination of some coins, and the last added coin was C. Then, number of possible combinations dp[N]
is equal to dp[N-C]
. Consider that you can reach N cents by adding either c[0], c[1], ... ,c[m-1]
cents, so number of possible combinations is:
dp[N] = dp[N-c[0]] + dp[N-c[1]] + ... + dp[N-c[m-1]]
Note that value of N-c[i]
must be non-negative. Let's use tabulation: for values j
from coin
up to N
: update dp[j]
with adding dp[j-coin]
; repeat for each coin
.
12345678910def coinChange(n , coins): dp = [0 for _ in range(n+1)] dp[0] = 1 for i in range(len(coins)): for j in range(coins[i], n+1): dp[j] += dp[j-coins[i]] return dp[n] print(coinChange(14, [1,2,3,7])) print(coinChange(100, [2,3,5,7,11]))
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Opsummér dette kapitel
Explain code
Explain why doesn't solve task
Awesome!
Completion rate improved to 8.33
Problem D. Coin Change
Stryg for at vise menuen
Imagine you got N cents as combination of some coins, and the last added coin was C. Then, number of possible combinations dp[N]
is equal to dp[N-C]
. Consider that you can reach N cents by adding either c[0], c[1], ... ,c[m-1]
cents, so number of possible combinations is:
dp[N] = dp[N-c[0]] + dp[N-c[1]] + ... + dp[N-c[m-1]]
Note that value of N-c[i]
must be non-negative. Let's use tabulation: for values j
from coin
up to N
: update dp[j]
with adding dp[j-coin]
; repeat for each coin
.
12345678910def coinChange(n , coins): dp = [0 for _ in range(n+1)] dp[0] = 1 for i in range(len(coins)): for j in range(coins[i], n+1): dp[j] += dp[j-coins[i]] return dp[n] print(coinChange(14, [1,2,3,7])) print(coinChange(100, [2,3,5,7,11]))
Tak for dine kommentarer!
Awesome!
Completion rate improved to 8.33single