
题目:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。
输入:10
输出:36(10 = 3 + 3 + 4, 3 × 3 × 4 = 36)
思路:动态规划
状态转移:
1 |
dp[i] = max(dp[i-1],2*dp[i-2], 3*dp[i-3] , .... , (n-1) * dp[1]) |
状态:将整数i拆分为两个整数的和并使整数乘积最大化
边缘处理:
1 |
dp[0] = 1 |
代码:
1 |
class : |




近期评论