We use cookies for site analytics. Accept to help us understand how the site is used. See our Privacy Policy for details.
A medium dynamic programming problem, graded against 4 test cases (2 of them hidden).
Overlapping subproblems solved once and reused - the pattern candidates fear most.
Reach for it when you see: "Number of ways", "minimum/maximum cost", or a recursion that recomputes the same state.
More Dynamic Programmingproblems →Unbounded coin-change with square coins. `dp[i] = 1 + min over j of dp[i - j²]` for `j² <= i`. Build from 1 to n; `dp[n]` is the minimum count.
Time: O(n·√n). Space: O(n).
The full reference solution in every supported language stays in the editor above - reveal it there once you have had a real attempt.
These apply to the pattern as a whole, not just this problem.