Given an integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product.
We use analytics and advertising cookies to understand how the site is used and whether our ads on Facebook and Instagram work. They are set only if you accept. See our Privacy Policy for details.
Given an integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product.
A medium dynamic programming problem, graded against 7 test cases (5 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 Programming problems →Partition DP. `dp[i]` is the max product from breaking `i` (into 2+ parts). For each split `j`, the rest can stay whole (`j·(i-j)`) or be broken further (`j·dp[i-j]`); take the max over all `j`.
Time: O(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.