LeetCode 343 整数拆分
const int N = 60;
class Solution {
public:
int dp[N];
int integerBreak(int n) {
dp[2] = 1;
for (int i = 3; i <= n; i ++)
for (int j = 1; j < i; j ++)
dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j)); //(i - j) * j分为两份, dp[i - j] * j分为多份
return dp[n];
}
};

浙公网安备 33010602011771号