343. 整数拆分
class Solution {
public:
int integerBreak(int n) {
int dp[100]={0};
//拆分i的最大乘积为dp[i]
dp[1]=1;//初始化,主要是为了dp[2]初始
for(int i=2;i<=n;i++)
{
for(int j=1;j<i;j++)
{
dp[i]=max(dp[i],max(j,dp[j])*max(i-j,dp[i-j]));
//取最大值,把这个数拆成两个数,两个数再分别与拆分其本身的最大取max
}
}
return dp[n];
}
};