343.整数的拆分
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/2;j++)
{
dp[i] = max({dp[i],j*(i-j),j*dp[i-j]});
}
}
return dp[n];
}
};
//用max时,如果就参数过于多,写法的格式要注意
一个整数,要被拆分为的个数要n>=2,最少为俩个数,这时我们通常使用俩个for循坏从1到n开始拆分,难道如果要拆分为三个数时,我们要使用三个for循环吗???那如果是拆分为无穷多个呢??难道要一直拆分下去,上面代码已经给出了答案