解题思路:
拆分的越多越好(暂且认为),尽可能拆成m个近似相等的数,会使得乘积最大
dp含义:将i进行拆分得到最大的积为dp[i]
递推公式:j x dp[i-j](固定j,只通过凑dp[i-j]进而实现所有情况)
初始化:dp[0] = 0,dp[1] = 0,dp[2] = 1
遍历顺序:根据递推公式,dp[i] = max(dp[i],max(dp[i-j]*j,(i-j)*j)),所以是从前往后遍历,先有dp[i-j]再有dp[i]。
代码实现:
有两种方案:i拆分出来j之后一是不再进行拆分,二是继续拆分。(主要表现在递推公式中)