dp数组的含义:dp[i]表示对i拆分,得到最大的积为dp[i]
递推公式:拆成两个数是 j*(i-j),拆成三个及以上是 j*dp[i-j],所以递推公式取两者大值
遍历顺序:从小到大
public int integerBreak(int n) {
int[] dp = new int[n+1];
dp[1]=0;
dp[2]=1;
for(int i=2;i<=n;i++){
for(int j=1;j<i;j++){
//注意这里要把dp[i]也写进去
dp[i]=Math.max(dp[i],Math.max(j*(i-j),j*dp[i-j]));
}
}
return dp[n];
}