Dynamic Programming: Knapsack - Integer Break
Consider the following code for integer break. What is the value of
dp[3] after the outer loop iteration i = 3 completes?
def integer_break(n):
dp = [0] * (n + 1)
dp[1] = 1
for i in range(2, n + 1):
max_product = 0
for j in range(1, i):
max_product = max(max_product, max(j, dp[j]) * max(i - j, dp[i - j]))
dp[i] = max_product
return dp[n]
print(integer_break(4)) # Output not asked here
