动态规划:先自己举几个例子,然后发现递推公式。其就是列举所有可能,然后从中寻找最大值输出。
class Solution {
public int integerBreak(int n) {
if(n==2) return 1;
if(n==3) return 2;
int[] dp = new int[n+1];
dp[2] = 2;
dp[3] = 3;
for(int i=4;i<=n;i++){
int max = 0;
for(int j=1;j<=i/2;j++){
if(j*dp[i-j]>max)
max = j*dp[i-j];
}
dp[i] = max;
}
return dp[n];
}
}