Dynamic Programming: Knapsack - Perfect Squares
In the following code snippet for computing the minimum number of perfect squares summing to
n, which line causes incorrect results when n = 0?
dp = [0] + [float('inf')] * n
for i in range(1, n+1):
for j in range(1, int(i**0.5)+1):
dp[i] = min(dp[i], dp[i - j*j] + 1)
return dp[n]