题目:
代码(首刷看解析 2024年2月21日):
dp[i]表示i所能拆分的最大乘积,则dp[i] 与dp[i - 1]的递推公式是:
max( 1~n * dp[n ~ 1])
class Solution {
public:
int integerBreak(int n) {
vector<int> dp(n + 1);
dp[2] = 1;
for (int i = 3; i <= n; ++i) {
for (int j = 1; j < i - 1; ++j) {
dp[i] = max(dp[i],max((j * dp[i - j]), j * (i - j)));
}
}
return dp[n];
}
};