给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。
返回 你可以获得的最大乘积 。
输入: n = 2
输出: 1
解释: 2 = 1 + 1, 1 × 1 = 1。
我的解法
class Solution {
public:
int integerBreak(int n){
int dp[59];
dp[0] = 0;
dp[1] = 1;
dp[2] = 1;
dp[3] = 2;
dp[4] = 4;
for(int i = 5; i <= n; i++){
if(i % 3 == 1){
dp[i] = dp[i-1]*4/3;
}
else{
dp[i] = dp[i-1]*3/2;
}
}
return dp[n];
}
};
标签:正整数,int,整数,拆分,343,dp
From: https://www.cnblogs.com/lihaoxiang/p/17391765.html