343. 整数拆分
class Solution {
public:
int integerBreak(int n) {
// dp[i] -> 对于正整数i 将其拆分为k个数之和的乘机最大值
vector<int> dp(n+1);
dp[0]=0;
dp[1]=1;
dp[2]=1;
for (int i = 3; i <= n; i ++ ) {
for (int j = 1; j <= i - j; j ++) {
dp[i] = max(dp[i], j * max(i-j,dp[i-j]));
}
}
return dp[n];
}
};